NetworkXは、Pythonで利用できるオープンソースのネットワーク分析ライブラリであり、グラフ理論やネットワークの解析をサポートします。NetworkXは、ノード（Node）とエッジ（Edge）から成るグラフ（Graph）を作成し、ネットワークの構造や特性を調査するためのツールを提供しています。ネットワークの解析や可視化、ネットワークアルゴリズムの実行など、さまざまなネットワーク関連のタスクに利用されています。
1. グラフの作成: NetworkXは、無向グラフや有向グラフ、重み付きグラフなどさまざまなタイプのグラフを作成する機能を提供します。また、多重グラフ（複数のエッジが同じ2つのノードを結ぶグラフ）もサポートしています。
2. グラフの操作: NetworkXは、グラフにノードやエッジを追加・削除したり、グラフの特性を調査したりするための操作を提供します。ネットワークの構造を柔軟に変更できます。
3. グラフの解析: NetworkXは、グラフの特性や統計量を計算するためのツールを提供します。例えば、ノードの次数（Degree）、最短経路（Shortest Path）、クラスタリング係数（Clustering Coefficient）などを計算できます。
4. ネットワークの可視化: NetworkXは、グラフの可視化をサポートしており、Matplotlibなどのライブラリを使用してグラフを描画することができます。
5. ネットワークアルゴリズム: NetworkXは、さまざまなネットワークアルゴリズムを提供しています。例えば、グラフの中心性（Centrality）や連結成分（Connected Components）を計算するアルゴリズムがあります。
import networkx as nx
import matplotlib.pyplot as plt
G = nx.Graph()
G.add_node('A')
G.add_node('B')
G.add_node('C')
G.add_edge('A', 'B')
G.add_edge('B', 'C')
nx.draw(G, with_labels=True, node_color='skyblue', node_size=1000, font_size=12, font_weight='bold')
plt.show()
サムネイル
import networkx as nx
import matplotlib.pyplot as plt
G = nx.DiGraph()
G.add_node('A')
G.add_node('B')
G.add_node('C')
G.add_edge('A', 'B')
G.add_edge('B', 'C')
nx.draw(G, with_labels=True, node_color='lightgreen', node_size=1000, font_size=12, font_weight='bold', arrowsize=20)
plt.show()
import networkx as nx
G = nx.Graph()
G.add_edges_from([('A', 'B'), ('B', 'C'), ('C', 'D'), ('D', 'A'), ('C', 'E'), ('E', 'F')])
print("Number of nodes:", G.number_of_nodes())
print("Number of edges:", G.number_of_edges())
print("Degree of node 'C':", G.degree('C'))
print("Shortest path between 'A' and 'F':", nx.shortest_path(G, 'A', 'F'))
NetworkXはpipコマンドを使用して簡単にインストールすることができます。以下のコマンドを実行してください：
pip install networkx