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