Matplotlib를 사용한 NetworkX 그래프 그리기
numpy
, pandas
, scikit-learn
와 같이 Python을 위해 만들어진 패키지가 너무 많고 네트워크 분석과 같은 특정 분야의 경우 networkx
가 있기 때문에 Python은 과학 및 분석 목적으로 널리 사용됩니다. matplotlib
패키지를 사용하여 시작하고 생성된 그래프를 보는 방법을 알려드리겠습니다.함께 코딩하기 위한 전제 조건
컴퓨터에 python을 설치했으며
pip
를 사용하여 다음 패키지를 설치할 수 있습니다.pip install --user networkx
pip install --user matplotlib
또는
pyenv
를 사용하여 python을 설치하고 pipenv
를 사용하여 패키지를 설치하는 것에 대한 이전 게시물을 따르는 경우 이 방법을 선호하기 때문에 다음 명령을 사용할 수 있습니다.pipenv install networkx
pipenv install matplotlib
준비
간단한 데모 프로젝트를 위한 폴더 내에 두 개의 파일을 생성해 보겠습니다. 파일은
test.py
및 miserables.json
입니다. miserables.json
파일에는 here 에서 얻을 수 있는 그래프 데이터가 포함되어 있습니다.- project
|_ test.py
|_ miserables.json
코딩
이제 코딩을 해보자
test.py
패키지 가져오기
JSON 파일을 다룰 것이기 때문에
networkx
, matplotlib
, 내장 패키지 json
를 사용할 것입니다.import json
import networkx as nx
import matplotlib.pyplot as plt
json 파일에서 데이터 로드
json
패키지를 사용하여 JSON 파일 콘텐츠를 로드하고 사전 개체로 변환합니다.miserables_graph = None
with open('miserables.json') as json_file:
miserables_graph = json.load(json_file)
networkx 그래프 만들기
그런 다음 networkx 그래프 개체 또는 인스턴스를 만들고 이전에 가져온 사전 개체에서 노드와 가장자리를 추가합니다.
G = nx.Graph()
G.add_nodes_from([(node['id'] for node in miserables_graph['nodes'])])
G.add_edges_from([(edge['source'], edge['target'])
for edge in miserables_graph['links']])
그래프 그리기
마지막으로
matplotlib
를 사용하여 그래프를 표시합니다.nx.draw(G)
plt.show()
test.py
를 사용하는 경우 python test.py
또는 pipenv run python test.py
를 사용하여 pipenv
파일을 실행할 수 있습니다. 실행하면 바탕 화면에 프로그램 인스턴스가 생성됩니다.그래프 그리기가 촌스럽고 못생겼다는 걸 알게 되실 거에요😆 나중에 예쁘게 꾸미는 방법을 찾아봐야겠지만 직접 찾아보는 재미도 쏠쏠합니다.
Reference
이 문제에 관하여(Matplotlib를 사용한 NetworkX 그래프 그리기), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/dendihandian/networkx-graph-drawing-using-matplotlib-1lcd텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)