NetworkXでネットワークの可視化

ネットワーク分析




NetworkXでネットワークの可視化

ここで紹介するコードのjupyternotebookは、GitHubに公開しています。
github.com/betashort/python/Graph

NetworkXのインストール

1
conda install NetworkX

グラフを作る

無向グラフ

無向グラフは、エッジに向きがないグラフです。

無向グラフは、nx.Graphを使います。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
import networkx as nx
 
graph = nx.Graph()
graph.add_nodes_from(["A", "B", "C", "D", "E", "F"])
graph.add_edges_from([("A", "B"),
                  ("B", "C"),
                  ("B", "D"),
                  ("C", "D"),
                  ("A", "E"),
                  ("C", "E"),
                  ("C", "F")]
                )
nx.draw_networkx(graph,
                 node_color='red',
                 with_lables=True)
#plt.savefig('graph_sample.png')
plt.show()

有向グラフ

有向グラフは、エッジに向きがあるグラフです。

有向グラフを作るときは、nx.DiGraphを使います。

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
import networkx as nx
 
digraph = nx.DiGraph()
digraph.add_nodes_from(["A", "B", "C", "D", "E", "F"])
digraph.add_edges_from([("A", "B"),
                  ("B", "C"),
                  ("B", "D"),
                  ("C", "D"),
                  ("A", "E"),
                  ("C", "E"),
                  ("C", "F")]
                )
nx.draw_networkx(digraph,
                 node_color='red',
                 with_lables=True)
#plt.savefig('digraph_sample.png')
plt.show()

特徴量へのアクセス

ノードの数を取得する

1
graph.number_of_nodes()

エッジの数を取得する

1
graph.number_of_edges()

隣接行列を取得する

1
nx.adjacency_matrix(graph)

次数を取得する

1
2
3
4
graph.degree()
 
#ヒストグラム
nx.degree_histogram()

参考

タイトルとURLをコピーしました