Python의 NetworkX에서 가중치 그래프 표시
소개
NetworkX는 Python의 그래프 그리기 패키지입니다.
입력 파일(변과 가중치)이 주어졌을 때의 가중치 그래프를 표시하는 방법을 정리해 둡니다.
입력 파일
변(정점 1, 정점 2), 가중치
test.txt1 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)
Reference
이 문제에 관하여(Python의 NetworkX에서 가중치 그래프 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/skyknsk/items/496116af2f1f8e88c616
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
변(정점 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)
Reference
이 문제에 관하여(Python의 NetworkX에서 가중치 그래프 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/skyknsk/items/496116af2f1f8e88c616
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
# パッケージのインポート
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 = {(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)
Reference
이 문제에 관하여(Python의 NetworkX에서 가중치 그래프 표시), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/skyknsk/items/496116af2f1f8e88c616텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)