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