networkxを利用するとPyhotnで簡単にネットワークグラフを描画することが可能です。
例えば以下のようなグラフは
このようなコードで描画することができる。
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することで簡単に描画することができます。
また、matplotlib
でshow
しなくても描画できるみたいだけど、参考にした書籍ではお作法的にshowしていた。
リンク