Zachary's Karate Clubデータセット
NetworkXはPythonのライブラリで、グラフ理論やネットワーク分析のためのツールを提供します。
NetworkXにはいくつかの組み込みデータセットがあり、これを使用してグラフを作成し、結果を分かりやすくグラフ化することができます。
以下に、Zachary’s Karate Clubデータセットを使用したサンプルコードを示します。
このデータセットは、カラテクラブのメンバーとその関係を表す社会ネットワークのデータです。
このサンプルでは、ネットワークの可視化を行います。
まず、NetworkXをインストールします。
1 | pip install networkx |
次に、以下のサンプルコードを使用してZachary’s Karate Clubデータセットを読み込み、可視化します。
1 | import networkx as nx |
このコードは、Zachary’s Karate Clubデータセットを読み込み、可視化するためのグラフを作成します。
ノードは青色で、エッジは線で表され、ノードにはラベルが表示されます。
可視化されたグラフは、Karate Clubメンバー間のつながりを示します。
NetworkXとMatplotlibを使用して、ネットワークデータの分析と可視化が簡単に行えます。
ソースコード解説
以下にソースコードの詳細を説明します。
1. import networkx as nx
とimport matplotlib.pyplot as plt
:
この行は、NetworkXとMatplotlibライブラリをインポートしています。
NetworkXはグラフ理論とネットワーク分析のためのライブラリであり、Matplotlibはグラフの描画に使用されます。
2. G = nx.les_miserables_graph()
:
nx.les_miserables_graph()
を使用して、Les Misérablesデータセットを読み込み、ネットワークグラフを作成します。
このデータセットは、小説「レ・ミゼラブル」の登場人物間の関係を表します。
3. pos = nx.spring_layout(G, k=0.15)
:
ネットワークグラフのレイアウトを設定します。
nx.spring_layout()
はFruchterman-Reingoldレイアウトアルゴリズムを使用し、ノードの位置を設定します。
k
パラメータは、ノード間の反発力を調整するためのパラメータです。
4. グラフの描画:
plt.figure(figsize=(12, 12))
: グラフの描画エリアのサイズを設定します。nx.draw_networkx_nodes()
: ノードを描画し、pos
で指定した位置に配置します。
ノードの色、サイズなどのプロパティも設定します。nx.draw_networkx_edges()
: エッジ(ノード間の線)を描画します。
エッジの幅、透明度、色などのプロパティも設定します。nx.draw_networkx_labels()
: ノードのラベルを描画し、フォントサイズや色を設定します。
5. ノードのラベル位置の微調整:
label_pos
という変数を使用して、ノードのラベル位置を微調整し、ノード上にラベルが正しく表示されるようにします。
6. plt.title("Les Misérables Characters Network", fontsize=16)
:
グラフのタイトルを設定します。
7. plt.axis('off')
:
グラフの軸を非表示にします。
8. plt.show()
:
最後に、Matplotlibを使用してグラフを表示します。
このスクリプトにより、Les Misérablesデータセットのネットワークが美しく可視化され、キャラクター間の関係が直感的に理解できます。
可視化のカスタマイズや他のデータセットへの適用も可能です。