차례:
비디오: [Colab] 구글 드라이브의 Colabortory를 통해 파이썬 데이터 시각화툴(Matplotlib, Seaborn, Altair, Plotly, bokeh) 사용하기 2024
대부분의 데이터 과학자는 어느 시점에서 그래프 데이터로 작업해야합니다. 파이썬은 그 기능을 제공합니다. 하나의 웹 페이지가 하이퍼 링크를 통해 다른 웹 페이지에 연결되는 방식과 같은 다른 데이터 요소에 연결된 데이터 포인트를 상상해보십시오. 이러한 각 데이터 포인트는 노드 입니다. 노드는 링크 를 사용하여 서로 연결합니다.
모든 노드가 다른 모든 노드에 링크되는 것은 아니므로 노드 연결이 중요 해집니다. 노드와 그 링크를 분석하여 거리에서 고속도로를 사용하여 직장에서 집까지 갈 수있는 최상의 방법을 정의하는 등 데이터 과학에서 모든 재미있는 작업을 수행 할 수 있습니다.
인접 행렬 은 그래프의 노드 사이의 연결을 나타냅니다. 한 노드와 다른 노드 사이에 연결이있을 때 행렬은이를 0보다 큰 값으로 나타냅니다. 행렬에서 연결의 정확한 표현은 그래프의 방향 (연결 방향이 중요한 경우) 또는 방향이 없는지 여부에 따라 다릅니다. 많은 온라인 예제의 문제점은 저자가 설명을 위해 간단하게 유지한다는 것입니다. 그러나 실세계 그래프는 대개 거대하며 단순히 시각화를 통해 쉬운 분석을 무시합니다. 작은 교차로를 고려할 때 작은 도시라도 가질 수있는 노드의 수를 생각해보십시오. 다른 많은 그래프는 훨씬 더 크고 단순히보고 있으면 흥미로운 패턴이 드러나지 않습니다. 데이터 과학자들은 인접 행렬 a hairball을 사용하여 복잡한 그래프를 표현할 때이 문제를 부릅니다.
NetworkX 기본 사용모든 코드를 처음부터 작성해야하는 경우 그래프 작업이 어려워 질 수 있습니다. 다행히도 Python 용 NetworkX 패키지는 복잡한 네트워크 (또는 그래프)의 구조, 역 동성 및 기능을 손쉽게 만들고 조작하고 연구 할 수있게합니다. 이 패키지를 사용하여 다이 그래프와 멀티 그래프로 작업 할 수도 있습니다.
NetworkX의 주된 강조점은 털볼의 모든 문제를 피하는 것입니다.간단한 호출을 사용하면 그래프 및 인접 행렬을 사용하여 작업하는 복잡성이 크게 줄어 듭니다. 다음 예제는 NetworkX 제공 그래프 중 하나에서 기본 인접성 행렬을 만드는 방법을 보여줍니다.import networkx를 nx G = nx로 생성합니다. cycle_graph (10) A = nx. adjacency_matrix (G) print (A. todense ())
이 예제는 필요한 패키지를 가져 오기 시작합니다. 그런 다음 cycle_graph () 템플릿을 사용하여 그래프를 만듭니다. 그래프에 10 개의 노드가 있습니다. adjacency_matrix ()를 호출하면 그래프에서 인접성 행렬이 만들어집니다. 마지막 단계는 다음과 같이 출력을 행렬로 출력하는 것입니다. <9 0 0 0 0 0 0 0 0 1> [1 0 1 0 0 0 0 0 0 0] [0 1 0 1 0 0 0 0 0 0] [0 0 1 0 1 0 0 0 0 0] [0 0 0 1 0 1 0 0 0 0] [0 0 0 1 1 0 1 0 0 0] [0 0 0 0 0 1 0 1 0 0] [0 0 0 0 0 1 0 0 0] [0 0 0 0 0 0 0 1 0 1] [1 0 0 0 0 0 0 1 0]]
당신은 테스트 목적으로 처음부터 직접 그래프를 작성하십시오. NetworkX 사이트는 사용할 수있는 여러 표준 그래프 유형을 문서화합니다.이 유형은 모두 IPython에서 사용할 수 있습니다.
그래프를 생성 한 후에 그래프가 어떻게 보이는지 보는 것은 흥미로운 일입니다. 다음 코드는 그래프를 표시합니다.
원본 그래프를 그립니다.
import matplotlib. plpl nx로 pyplot. draw_networkx (G) plt. 플롯은 노드 1과 노드 5 사이에 가장자리를 추가 할 수 있다는 것을 보여줍니다. add_edge () 함수를 사용하여이 작업을 수행하는 데 필요한 코드는 다음과 같습니다.
그래프 추가 플롯. G. add_edge (1, 5) nx. draw_networkx (G) plt. 쇼 ()