この記事では、Pandasのデータフレームから独自の重み付きグラフを作成する方法について理解します。
この記事もチェック:Pandasのデータフレームに行を追加する5つの簡単な方法
Pandasのデータフレームから重み付きグラフを作成する
Pythonプログラムの最初のタスクは、必要なモジュール/ライブラリをコードにインポートすることです。
| 1 2 3 4 | importpandas as pdimportnumpy as npimportnetworkx as nximportmatplotlib.pyplot as plt | 
次のタスクは、後のセクションでプロットされるグラフのためのデータフレームを作成することです。
これはpandasとnumpyモジュールを使って得ることができます。
まず、ランダムシードを作成します。
これは、後のセクションでエッジの重みとして使用される、特定の範囲のランダムな整数を生成するのに役に立ちます。
次に、データフレームを DataFrame 関数で作成し、グラフのデータを関数に渡します。
| 1 2 3 4 | r =np.random.RandomState(seed=5)weights =r.random_integers(1, 5, size=(5,))df =pd.DataFrame({'from':['A','B','C','D','E'],'to':['D','E','A','D','C'],'weight':weights})df.head() | 
| 1 2 3 4 | fig, ax =plt.subplots()pos =nx.spring_layout(G)plt.title("Plotting Nodes")nx.draw_networkx_nodes(G, pos, ax =ax) | 
次に、draw_networkx_nodes 、draw_networkx_edges 、draw_networkx_labels 関数を用いて、ノード、エッジ、ラベルを個別にプロットし、重み付けプロットを視覚化します。
Visualizing Nodes
Fake Tags
Fake Tags
Visualizing Edges
Fake Tags
Fake Tags
完全なグラフの可視化
| 1 2 3 4 | fig, ax =plt.subplots()pos =nx.spring_layout(G)plt.title("Plotting Edges")nx.draw_networkx_edges(G, pos, width=durations, ax=ax) | 
| 1 2 3 4 5 6 | fig, ax =plt.subplots()pos =nx.spring_layout(G)plt.title("Plotting Complete Graph")nx.draw_networkx_nodes(G, pos, ax =ax)nx.draw_networkx_edges(G, pos, width=durations, ax=ax)_ =nx.draw_networkx_labels(G, pos, labels, ax=ax) | 
まとめ
NetworkXライブラリのpandasデータフレームを使用してグラフを作成する方法を学びました。
このチュートリアルはいかがでしたか?以下のチュートリアルをご覧になることをお勧めします。
- NetworkXパッケージ – Pythonグラフライブラリ
- 重みのないグラフのノード間距離の計算
- Pythonによるグラフ操作【簡単な例付き】 4.
- Pythonでグラフを実装する
お時間を割いていただきありがとうございました! 何か新しいことを学べたでしょうか!
