NetworkX ①(グラフ描画)

NetworkX

NetworkX は、グラフ理論ネットワーク理論系の計算 を行うためのPythonパッケージです。

簡単にグラフが定義できたり,図を作ったりできます。

グラフは 頂点(ノード)辺(エッジ) で成り立っています。

無向グラフ

辺に向きがないグラフを 無向グラフ といいます。

NetworkX を使って 無向グラフ を描いてみます。

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
import networkx as nx

G = nx.Graph() # 無向グラフ

# 頂点の追加
G.add_node(1)
G.add_nodes_from([3, 4, 5])

# 辺の追加 (頂点も必要に応じて追加されます)
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 5), (3, 4), (4, 5)])

nx.draw_networkx(G)

[実行結果]

辺(エッジ)に矢印のない 無向グラフ を表示することができました。

有向グラフ

辺に向きがあるグラフを 有向グラフ といいます。

NetworkX を使って 有向グラフ を描いてみます。(3行目だけが変更されています)

[Google Colaboratory]

1
2
3
4
5
6
7
8
9
10
11
12
13
import networkx as nx

G = nx.DiGraph() # 有向グラフ (Directed Graph)

# 頂点の追加
G.add_node(1)
G.add_nodes_from([3, 4, 5])

# 辺の追加 (頂点も必要に応じて追加されます)
G.add_edge(1, 2)
G.add_edges_from([(1, 3), (2, 5), (3, 4), (4, 5)])

nx.draw_networkx(G)

[実行結果]

辺(エッジ)に矢印のある 有向グラフ を表示することができました。