Python
 Computer >> コンピューター >  >> プログラミング >> Python

Matplotlibとnetworkxでノードの輪郭線の色を変更する方法

networkxで作成したグラフのノード輪郭(枠線)の色を変更したい場合は、set_edgecolor()メソッドを使用します。draw_networkx_nodes()で返されるノードコレクションオブジェクトに対してこのメソッドを呼び出すことで、ノードの外周に好きな色を付けることができます。

実装の手順

  • 「from」列と「to」列を持つPandasデータフレームを作成します。
  • エッジリストを含むデータフレームからnx.from_pandas_edgelist()でグラフを生成します。
  • spring_layout()などでノードの配置位置を計算します。
  • draw_networkx_nodes()を使ってグラフのノードを描画します。
  • 戻り値のノードコレクションに対してset_edgecolor()を呼び出し、輪郭色を設定します。
  • plt.show()メソッドで図を表示します。

サンプルコード

from networkx import *
import matplotlib.pyplot as plt
import pandas as pd

plt.rcParams["figure.figsize"] = [7.00, 3.50]
plt.rcParams["figure.autolayout"] = True

df = pd.DataFrame({'from': ['A', 'B', 'C', 'A'], 'to': ['D', 'A', 'E', 'C']})
G = nx.from_pandas_edgelist(df, 'from', 'to')
pos = spring_layout(G)
nodes = draw_networkx_nodes(G, pos)
nodes.set_edgecolor('red')
plt.show()

コードのポイント

この例では、まずPandasデータフレームでエッジリストを定義し、そこから無向グラフGを構築しています。spring_layout()はノードをバネモデルに基づいて自動配置するレイアウト関数です。draw_networkx_nodes()の戻り値はPathCollectionオブジェクトであり、これがset_edgecolor('red')を持っているため、すべてのノードの輪郭を一括して赤色に変更できます。色名のほか、RGBタプルや16進数カラーコードも指定可能です。

実行結果

Matplotlibとnetworkxでノードの輪郭線の色を変更する方法

  1. MatplotlibとPythonで矢印プロット(Quiver Plot)を作成する方法を徹底解説

    Matplotlibは、データ可視化に広く活用されている人気のPythonパッケージです。データの可視化は分析において非常に重要なステップです。数値を一つひとつ確認したり複雑な計算を実行しなくても、データの中で何が起きているのかを直感的に把握できるようになるためです。また、定量的な洞察を効果的に伝える手段としても大きな力を発揮します。 Matplotlibは2次元のグラフやプロットを作成するために使用されます。オブジェクト指向APIを備えており、Pythonアプリケーション内にプロットを組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さ

  2. PythonのMatplotlibでヒストグラムを作成する方法をわかりやすく解説

    Matplotlibは、データ可視化のために広く使われている人気のPythonライブラリです。データの可視化は非常に重要なステップです。数値を一つずつ確認したり複雑な計算を行ったりしなくても、データ全体の傾向や特徴を直感的に把握できるようになるからです。また、定量的な洞察を効果的に伝える手段としても優れています。MatplotlibとはMatplotlibは、データをもとに2次元のプロット(グラフ)を作成するためのライブラリです。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも簡単に行えます。IPythonシェル、Jupyter Noteboo