Python의 NetworkX에서 가중치 그래프 표시

소개



NetworkX는 Python의 그래프 그리기 패키지입니다.
입력 파일(변과 가중치)이 주어졌을 때의 가중치 그래프를 표시하는 방법을 정리해 둡니다.

입력 파일



변(정점 1, 정점 2), 가중치

test.txt
1 2 5
1 3 8
2 4 3
3 5 5
4 5 10

그래프 작성



test.py
# パッケージのインポート
import matplotlib.pyplot as plt
import networkx as nx

# グラフの作成
G = nx.DiGraph()

# 重み付きのファイルの読み込み
G = nx.read_weighted_edgelist('test.txt', nodetype=int)

# レイアウトと頂点の色を適当に設定
pos = nx.spring_layout(G, k=0.7)
node_color = ['r' if i < 2 else 'b' for i in range(G.number_of_edges())]

# グラフの描画
nx.draw_networkx_edge_labels(G,pos)
nx.draw_networkx(G, pos, with_labels=True, node_color=node_color, alpha=0.5)

# 表示
plt.axis("off")
plt.show()



가중치만 표시하려면 edge_labels를 설정합니다.
# グラフの描画
edge_labels = {(i, j): w['weight'] for i, j, w in G.edges(data=True)}
nx.draw_networkx_edge_labels(G,pos, edge_labels=edge_labels)
nx.draw_networkx(G, pos, with_labels=True, node_color=node_color, alpha=0.5)

좋은 웹페이지 즐겨찾기