Matplotlibでpcolorのカラーバーを別のサブプロットに表示する方法
Matplotlibでは、pcolormeshで作成した擬似カラープロットに対して、fig.colorbar()を使うことで各サブプロットに対応するカラーバーを簡単に追加できます。この記事では、2×2のサブプロットレイアウトを使い、それぞれのプロットに個別のカラーバーを表示する手順を解説します。
実装の手順
- figureサイズを設定し、autolayoutを有効にしてサブプロット間・周囲の余白を自動調整します。
- plt.subplots(2, 2) を使って、2行2列の図とサブプロットを作成します。
- 使用するカラーマップ(例:plasma、copper)のリストを用意します。
- 軸を反復処理しながら、不規則な矩形グリッド上にpcolormesh()で擬似カラープロットを描画します。
- 描画したpcolormeshオブジェクトをfig.colorbar()に渡し、同じ軸に関連付けられたカラーバーを作成します。
- 最後にplt.show()を呼び出して図を表示します。
サンプルコード
import matplotlib.pyplot as plt
import numpy as np
plt.rcParams["figure.figsize"] = [7.50, 3.50]
plt.rcParams["figure.autolayout"] = True
fig, axs = plt.subplots(2, 2)
cm = ['plasma', 'copper']
for col in range(2):
for row in range(2):
ax = axs[row, col]
pcm = ax.pcolormesh(np.random.random((20, 20)) * (col + 1), cmap=cm[col])
fig.colorbar(pcm, ax=ax)
plt.show()
実行結果
このコードを実行すると、2×2のグリッド状に配置された4つの擬似カラープロットが表示され、それぞれのサブプロットの右側に対応するカラーバーが自動的に追加されます。列ごとに異なるカラーマップ(plasma/copper)とデータ範囲が適用されているため、カラーバーの値域もそれぞれ異なる点に注目してください。

ポイントのまとめ
pcolormesh()の戻り値(QuadMeshオブジェクト)を変数に保持しておき、それをfig.colorbar(pcm, ax=ax)に渡すのがポイントです。ax引数を指定することで、元のプロットのレイアウトを崩さずにカラーバーを適切な位置へ自動配置できます。複数のサブプロットでカラーバーを共有したい場合は、ax引数に軸のリストを渡す方法もあります。
-
Matplotlibで3D軸に点をプロットする方法を解説
Matplotlibを使って3D空間上に点をプロットするには、以下の手順に従います。 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。 figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。 add_subplot() メソッドに projection=3d を指定して、3D投影のAxesを図に追加します。 scatter() メソッドを使用して、3D座標(x, y, z)の位置に点を描画します。 show() メソッドを使用して、図を画面に表示します。 コード例 from matplotlib import pyplot
-
Python Matplotlibで3Dグラフをプロットする方法を解説
PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使