Python networkxでネットワークグラフを描画する

個人開発したアプリの宣伝
目的地が設定できる手帳のような使い心地のTODOアプリを公開しています。
Todo with Location

Todo with Location

  • Yoshiko Ichikawa
  • Productivity
  • Free

スポンサードリンク

networkxを利用するとPyhotnで簡単にネットワークグラフを描画することが可能です。

例えば以下のようなグラフは

f:id:letitride:20200716111800p:plain:w400


このようなコードで描画することができる。

import matplotlib.pyplot as plt
import networkx as nx

#グラフオブジェクトの初期化
G=nx.Graph()
#ノードの登録
G.add_node("node_1")
G.add_node("node_2")
G.add_node("node_3")

#ノード間のエッジの登録
G.add_edge("node_1", "node_2" )
G.add_edge("node_1", "node_3" )

#エッジの太さ エッジ登録順の並びで指定
edge_weights = [1, 10]

#ノードの位置
node_position = {"node_1": (1,5), "node_2":(6, 10), "node_3":(6, 1)}

#edge_weights.append(weight)
nx.draw(G, node_position, with_labels=True, font_size=10, node_size=2000,
       node_color="k", font_color="w", width=edge_weights)
plt.show()

ノード、エッジと各オブジェクトをグラフオブジェクトにaddすることで簡単に描画することができます。

また、matplotlibshowしなくても描画できるみたいだけど、参考にした書籍ではお作法的にshowしていた。