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

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)とデータ範囲が適用されているため、カラーバーの値域もそれぞれ異なる点に注目してください。

Matplotlibでpcolorのカラーバーを別のサブプロットに表示する方法

ポイントのまとめ

pcolormesh()の戻り値(QuadMeshオブジェクト)を変数に保持しておき、それをfig.colorbar(pcm, ax=ax)に渡すのがポイントです。ax引数を指定することで、元のプロットのレイアウトを崩さずにカラーバーを適切な位置へ自動配置できます。複数のサブプロットでカラーバーを共有したい場合は、ax引数に軸のリストを渡す方法もあります。

  1. Matplotlibで3D軸に点をプロットする方法を解説

    Matplotlibを使って3D空間上に点をプロットするには、以下の手順に従います。 図のサイズを設定し、サブプロット間および周囲のパディング(余白)を調整します。 figure() メソッドを使用して、新しい図を作成するか、既存の図をアクティブ化します。 add_subplot() メソッドに projection=3d を指定して、3D投影のAxesを図に追加します。 scatter() メソッドを使用して、3D座標(x, y, z)の位置に点を描画します。 show() メソッドを使用して、図を画面に表示します。 コード例 from matplotlib import pyplot

  2. Python Matplotlibで3Dグラフをプロットする方法を解説

    PythonのMatplotlibを使えば、3次元の散布図やグラフを簡単に描画できます。この記事では、mpl_toolkits.mplot3dモジュールを利用して3Dグラフを作成する手順を、サンプルコード付きでわかりやすく解説します。 3Dグラフをプロットする基本手順 Pythonで3Dグラフを描くには、以下のステップに従います。 figure()メソッドを使って、新しい図(フィギュア)を作成するか、既存の図をアクティブにします。 Axes3Dオブジェクトを取得して、3D用の座標軸を準備します。 x、y、zそれぞれのデータポイントをリストとして定義します。 scatter3D()メソッドを使