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

networkx・matplotlibでグラフ描画の属性を変更する方法

Pythonのnetworkxmatplotlibを組み合わせてグラフを描画する際、エッジの色や太さといった属性を自由に変更できます。この記事では、その具体的な手順をサンプルコード付きで解説します。

変更手順

  • 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。

  • エッジ、名前、またはグラフ属性を持つグラフを初期化します。

  • グラフに属性を追加し、ノード uv の間にエッジを追加します。ここでは各エッジに「color」と「weight」を設定しています。

  • nx.get_edge_attributes() を使って、グラフからエッジの属性(色・重み)を取得します。

  • nx.circular_layout() を使って、ノードを円形に配置します。

  • Matplotlibでグラフ G を描画します。edge_colorwidth に取得した属性値を渡すことで、描画スタイルが反映されます。

  • 図を表示するには、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でグラフ描画の属性を変更する方法

  1. NetworkXとMatplotlibでネットワークグラフを描画する方法

    PythonのNetworkXとMatplotlibを組み合わせると、ノードとエッジから構成されるネットワークグラフを簡単に可視化できます。この記事では、Pandasのデータフレームからエッジリストを作成し、グラフとして描画して表示するまでの一連の手順を解説します。ネットワークグラフ描画の基本手順図のサイズと余白を設定する:figureサイズを指定し、サブプロット間および周囲のパディングを調整します。データフレームを作成する:「from」と「to」というキーを持つデータフレームオブジェクトを用意します。これがグラフのエッジ(辺)情報になります。エッジリストからグラフを生成する:データフレームを

  2. Matplotlibでハッチの線幅を変更する方法

    Matplotlibでハッチ(網掛け)の線幅を変更したい場合は、rcParamsの「hatch.linewidth」パラメータを設定することで実現できます。この記事では、具体的な手順とサンプルコードをわかりやすく解説します。実装の手順図のサイズを設定し、サブプロット間および周囲のパディングを調整します。NumPyを使用して、x および y = sin(x) のデータポイントを作成します。plt.rcParams[hatch.linewidth] を使って、ハッチの線幅を設定します。scatter() メソッドを使用し、「/」ハッチが付いた正方形マーカーで、設定した線幅を適用しながらxとyのデー