Computer >> 컴퓨터 >  >> 프로그래밍 >> Python

Python에서 NetworkX 그래프를 재구성하는 방법


Python에서 NetworkX 그래프를 재구성(reshape)하려면 아래 단계를 순서대로 따라 하면 됩니다.

  • Pandas의 데이터프레임(DataFrame)을 생성합니다.

  • from_pandas_edgelist() 메서드를 사용하여 엣지 리스트(edge list)가 포함된 Pandas 데이터프레임으로부터 그래프 객체를 생성합니다.

  • matplotlib으로 그래프 G를 시각화합니다. 이때 "from"과 "to" 키 목록에 노드를 추가하거나 제거하여 네트워크 구조를 자유롭게 확장·축소할 수 있습니다.

  • 완성된 그림을 화면에 표시하려면 show() 메서드를 호출합니다.

예제 코드

import pandas as pd
import networkx as nx
from matplotlib import pyplot as plt

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({'from': ['A', 'B', 'C', 'A'], 'to': ['D', 'A', 'E', 'C']})
G = nx.from_pandas_edgelist(df, 'from', 'to')
nx.draw(G, with_labels=True, node_size=150, alpha=0.5, linewidths=40)
plt.show()

실행 결과

위 코드를 실행하면 A, B, C, D, E 노드로 구성된 네트워크 그래프가 레이블과 함께 표시됩니다. 데이터프레임의 'from'과 'to' 열 값을 변경하면 연결 관계가 달라진 새로운 그래프 구조를 손쉽게 확인할 수 있습니다.