web-dev-qa-db-ja.com

networkxで出力をプロットするためにエッジの重みを追加します

Networkxパッケージを使用して、pythonでグラフ理論を行っています。グラフのエッジの重みをプロット出力に追加したいのですが、どうすればよいですか?

たとえば、次のコードを変更して目的の出力を取得するにはどうすればよいですか?

import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
i=1
G.add_node(i,pos=(i,i))
G.add_node(2,pos=(2,2))
G.add_node(3,pos=(1,0))
G.add_Edge(1,2,weight=0.5)
G.add_Edge(1,3,weight=9.8)
pos=nx.get_node_attributes(G,'pos')
nx.draw(G,pos)
plt.savefig("path.png")

グラフで参照するエッジに0.5と9.8を表示したいと思います。

19
smilingbuddha

nx.draw_networkx_Edge_labels() を呼び出す必要があります。これにより、... networkX Edgeラベルを描画できます:)

編集:完全に変更されたソース

#!/usr/bin/python
import networkx as nx
import matplotlib.pyplot as plt

G=nx.Graph()
i=1
G.add_node(i,pos=(i,i))
G.add_node(2,pos=(2,2))
G.add_node(3,pos=(1,0))
G.add_Edge(1,2,weight=0.5)
G.add_Edge(1,3,weight=9.8)
pos=nx.get_node_attributes(G,'pos')
nx.draw(G,pos)
labels = nx.get_Edge_attributes(G,'weight')
nx.draw_networkx_Edge_labels(G,pos,Edge_labels=labels)
plt.savefig(<wherever>)
24
Marcus Müller