Matplotlib×networkxでエッジラベルの表示位置をカスタマイズする方法
Pythonのnetworkxでは、draw_networkx_edge_labels()関数を使うことで、グラフのエッジ(辺)にラベルを描画できます。ラベルの表示位置(オフセット)は、label_pos引数で自由に調整できます。この記事では、有向グラフを作成し、各エッジにラベルを付けて表示位置を変更する具体的な手順を、サンプルコード付きで解説します。
エッジラベルをカスタマイズする手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- エッジ・名前・グラフ属性を持つグラフを初期化します。
- 複数のノードを追加します。
- Fruchterman-Reingold力指向アルゴリズム(
spring_layout)でノードの配置を決定します。 - MatplotlibでグラフGを描画します。
- エッジラベルを描画します。
show()メソッドで図を表示します。
サンプルコード
import matplotlib.pylab as plt
import networkx as nx
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
# 有向グラフを作成
G = nx.DiGraph()
G.add_nodes_from([1, 2, 3, 4])
G.add_edges_from([(1, 2), (2, 3), (3, 4), (4, 1), (1, 3)])
# Fruchterman-Reingoldアルゴリズムでノード配置を決定
pos = nx.spring_layout(G)
# 全エッジに重みを設定
for u, v, d in G.edges(data=True):
d['weight'] = 3
edges, weights = zip(*nx.get_edge_attributes(G, 'weight').items())
# グラフを描画
nx.draw(G, pos, node_color='b', edge_color=weights,
width=2, with_labels=True)
# エッジラベルを描画(label_posで表示位置を指定)
nx.draw_networkx_edge_labels(
G, pos,
{
(1, 2): "x", (2, 3): "y", (3, 4): "w",
(4, 1): "z", (1, 3): "v"
},
label_pos=0.75
)
plt.show()
コードのポイント
- label_pos引数: ラベルの表示位置を0〜1の範囲で指定します。0がエッジの始点側、1が終点側を表し、0.5(デフォルト)なら中央に表示されます。上記の例では0.75を指定しているため、各ラベルは終点寄りに表示されます。
- edge_color=weights: エッジの重みに応じて色を変えることで、グラフを視覚的に分かりやすくしています。
- with_labels=True: ノード番号をノード上に表示します。
出力結果

このようにlabel_posの値を変更するだけで、エッジラベルの位置を簡単に調整できます。ラベル同士が重なって見づらい場合などに、ぜひ活用してください。
-
Pythonのmatplotlibで積み上げ棒グラフを作成・表示する方法
Matplotlibは、Pythonで最も広く使われているデータ可視化ライブラリの一つです。データの可視化は、数値を一つずつ確認したり複雑な計算を行ったりすることなく、データ全体の傾向や特徴を直感的に把握するために欠かせないステップです。また、定量的な洞察を効果的に伝える手段としても非常に有用です。 Matplotlibは、データをもとに2次元のグラフやプロットを作成するために使用されます。オブジェクト指向のAPIを備えており、作成したグラフをPythonアプリケーションに組み込むことも可能です。IPythonシェル、Jupyter Notebook、Spyder IDEなど、さまざまな環境で
-
Microsoft Edgeでツールバーをカスタマイズする方法|ボタンの追加・削除と外観設定ガイド
新しいMicrosoft Edge(Chromium版)は、インターネットユーザーの間で急速に人気を集めているブラウザです。WindowsとMacのすべてのバージョンに対応しており、強化された機能と高速なパフォーマンスにより、さまざまなウェブサイトや拡張機能との相性も抜群です。さらに、内蔵された高いセキュリティ機能によって、ユーザーのデータ漏洩やハッキングによる被害を防ぐことができます。ブラウザの見た目を自由にカスタマイズできる点も、多くのユーザーを惹きつける理由の一つとなっています。この記事では、Microsoft Edgeのツールバーを自分好みにカスタマイズする方法を詳しく解説します。 M