Matplotlibで図のサブプロットにA、B、Cのラベルを付ける方法
MatplotlibでサブプロットにA、B、Cの注釈を付ける
Matplotlibを使用して、図内の各サブプロットに「A」「B」「C」といった注釈(パネルラベル)を付ける方法を解説します。論文やレポートで複数のグラフ・画像を並べて提示する際に非常に便利なテクニックです。
実装手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- nrows=1、ncols=3 を指定して、図とサブプロットのセットを作成します。
- 配列から1次元イテレータを作成します。
- 各Axesを反復処理し、データを画像として表示します。
- 同じループの中で、テキスト「A」「B」「C」を自動的に配置します。
- 図を表示するには show() メソッドを使用します。
コード例
import numpy as np
from matplotlib import pyplot as plt
import string
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, axs = plt.subplots(1, 3)
axs = axs.flat
for index, ax in enumerate(axs):
ax.imshow(np.random.randn(4, 4), interpolation='nearest',
cmap="copper")
ax.text(0.45, 1.1, string.ascii_uppercase[index],
transform=ax.transAxes,
size=20, weight='bold')
plt.show()
ポイント解説
このコードの重要なポイントは以下の2つです。
- string.ascii_uppercase[index]:Pythonのstringモジュールを利用することで、「A」「B」「C」…というアルファベットをインデックスに応じて自動的に取得できます。サブプロットが増えてもコードを修正する必要がありません。
- transform=ax.transAxes:Axes座標系(左下が(0, 0)、右上が(1, 1))を指定しているため、データのスケールに依存せず、常にサブプロットの上部にラベルを配置できます。
出力結果

-
Matplotlibで凡例を行ごとに2列に整列させる方法
Matplotlibの凡例(legend)を2列に整列させて表示したい場合、ncolパラメータを使うことで簡単に実現できます。以下の手順で説明します。手順図(figure)のサイズを設定し、サブプロット周辺の余白(パディング)を調整します。plot()メソッドを使用して、line1、line2、line3というラベルを持つ線を描画します。ncol=2を指定してlegend()メソッドを呼び出し、2列構成の凡例を図上に配置します。show()メソッドで図を表示します。コード例from matplotlib import pyplot as plt plt.rcParams[figure.figs
-
NumPyとMatplotlibで画像セグメンテーションをオーバーレイ表示する方法
NumPyとMatplotlibを組み合わせると、画像セグメンテーションの結果を元画像の上に重ねて(オーバーレイ)表示できます。マスク配列を活用すれば、検出した領域だけを色付きで半透明に強調することが可能です。 実装の手順 10×10のサイズを持つマスク配列を作成します。 一部の領域(中央部分)の値を1に更新します。 NumPyを使って画像データを生成します。 条件を満たす要素をマスクし、マスク済みデータを作成します。 figure()メソッドで新しい図を作成、または既存の図をアクティブ化します。 imshow()メソッドでデータを2次元ラスタ画像として表示します。 show()メソッドで図