networkx・matplotlibでグラフ描画の属性を変更する方法
Pythonのnetworkxとmatplotlibを組み合わせてグラフを描画する際、エッジの色や太さといった属性を自由に変更できます。この記事では、その具体的な手順をサンプルコード付きで解説します。
変更手順
図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
エッジ、名前、またはグラフ属性を持つグラフを初期化します。
グラフに属性を追加し、ノード u と v の間にエッジを追加します。ここでは各エッジに「color」と「weight」を設定しています。
nx.get_edge_attributes()を使って、グラフからエッジの属性(色・重み)を取得します。nx.circular_layout()を使って、ノードを円形に配置します。Matplotlibでグラフ G を描画します。
edge_colorやwidthに取得した属性値を渡すことで、描画スタイルが反映されます。図を表示するには、
show()メソッドを使用します。
サンプルコード
import matplotlib.pyplot as plt
import networkx as nx
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
G = nx.Graph()
G.add_edge(0, 1, color='r', weight=2)
G.add_edge(1, 2, color='g', weight=4)
G.add_edge(2, 3, color='b', weight=6)
G.add_edge(3, 4, color='y', weight=3)
G.add_edge(4, 0, color='m', weight=1)
colors = nx.get_edge_attributes(G, 'color').values()
weights = nx.get_edge_attributes(G, 'weight').values()
pos = nx.circular_layout(G)
nx.draw(G, pos,
edge_color=colors,
width=list(weights),
with_labels=True,
node_color='lightgreen')
plt.show()
実行結果
上記のコードを実行すると、以下のような出力が得られます。各エッジは指定した色で描画され、weightの値に応じて線の太さが変化していることが確認できます。

-
NetworkXとMatplotlibでネットワークグラフを描画する方法
PythonのNetworkXとMatplotlibを組み合わせると、ノードとエッジから構成されるネットワークグラフを簡単に可視化できます。この記事では、Pandasのデータフレームからエッジリストを作成し、グラフとして描画して表示するまでの一連の手順を解説します。ネットワークグラフ描画の基本手順図のサイズと余白を設定する:figureサイズを指定し、サブプロット間および周囲のパディングを調整します。データフレームを作成する:「from」と「to」というキーを持つデータフレームオブジェクトを用意します。これがグラフのエッジ(辺)情報になります。エッジリストからグラフを生成する:データフレームを
-
Matplotlibでハッチの線幅を変更する方法
Matplotlibでハッチ(網掛け)の線幅を変更したい場合は、rcParamsの「hatch.linewidth」パラメータを設定することで実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用して、x および y = sin(x) のデータポイントを作成します。plt.rcParams[hatch.linewidth] を使って、ハッチの線幅を設定します。scatter() メソッドを使用し、「/」ハッチが付いた正方形マーカーで、設定した線幅を適用しながらxとyのデー