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

ネットワーク分析




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

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

NetworkXのインストール

conda install NetworkX

グラフを作る

無向グラフ

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

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

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を使います。

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()

特徴量へのアクセス

ノードの数を取得する

graph.number_of_nodes()

エッジの数を取得する

graph.number_of_edges()

隣接行列を取得する

nx.adjacency_matrix(graph)

次数を取得する

graph.degree()

#ヒストグラム
nx.degree_histogram()

参考

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