Matplotlibで複数のカラーバーを表示する方法【初心者向け解説】
Matplotlibでは、複数のカラーバー(カラースケール)を1つの図の中に同時に表示することができます。これにより、異なるデータセットをそれぞれ独立した色スケールで視覚的に比較できるようになります。
この記事では、imshow()を使って複数の画像データを描画し、それぞれに対応するカラーバーを追加する具体的な手順を紹介します。
複数のカラーバーを表示する手順
- 図のサイズを設定し、サブプロット間および周囲の余白(パディング)を調整します。
- 図(figure)とサブプロット(axes)のセットを作成します。
- サンプルデータの個数を表す変数 N を初期化します。
- NumPyを使ってランダムなデータ data1 を生成します。
imshow()を使って、data1を2次元の正規ラスター(画像)として表示します。colorbar()でプロットにカラーバーを追加します。- 手順4〜6を、別のデータセットと別の軸(axes)に対して繰り返します。
- 最後に
show()メソッドを呼び出して図を表示します。
コード例
from matplotlib import pyplot as plt import numpy as np plt.rcParams["figure.figsize"] = [7.50, 3.50] plt.rcParams["figure.autolayout"] = True fig, (ax1, ax2) = plt.subplots(nrows=2, ncols=1) N = 10 data1 = np.random.rand(N, N) im1 = ax1.imshow(data1, cmap='hot') plt.colorbar(im1, cax=ax1) data2 = np.random.rand(N, N) im2 = ax2.imshow(data2, cmap='plasma') plt.colorbar(im2, cax=ax2) plt.show()
コードのポイント
この例では、plt.subplots(nrows=2, ncols=1) によって縦に2つ並んだサブプロットを作成しています。各サブプロットには np.random.rand(N, N) で生成した10×10のランダムな2次元データを imshow() で描画し、カラーマップとして上側は 'hot'、下側は 'plasma' を指定しています。
重要なのは plt.colorbar(im, cax=ax) の部分です。cax 引数に各サブプロットの軸オブジェクトを渡すことで、それぞれのデータに対応するカラーバーが正しく割り当てられます。このように cax を明示的に指定することで、複数のカラーバーが混在することなく、意図した位置に配置されます。
出力結果

実行すると、異なるカラーマップを持つ2つのヒートマップが縦に並んで表示され、それぞれの右側(または指定位置)に対応するカラーバーが表示されます。値の分布がデータごとに異なる場合でも、各カラーバーが独立しているため、正確な色の読み取りが可能になります。
-
Matplotlibで複数のX軸・Y軸をプロットする方法(twinx / twinyの使い方)
データ分析や可視化では、スケールの異なる2つのデータ系列を同じグラフ上に重ねて表示したいケースがよくあります。Matplotlibでは、twinx() メソッドや twiny() メソッドを使うことで、X軸またはY軸を共有しながら独立したもう一方の軸を持つグラフを簡単に作成できます。 この記事では、左右に異なるY軸を持つグラフを作成する手順を、具体的なコード例とともに解説します。 複数のY軸を持つグラフの作成手順 以下の手順で、左と右に別々のY軸スケールを持つプロットを作成できます。 subplots() メソッドを使用して、図(figure)とサブプロット(axes)を作成します。 最初の
-
【Python入門】Matplotlibで複数のグラフを1つの図に組み合わせる方法(subplot・twinx活用)
はじめに Matplotlibは、同じグラフ上に複数のプロットを重ねて描画できる強力なPythonの可視化ライブラリです。本チュートリアルでは、2つの異なるY軸を使いながら、1つの図の中に複数のデータを組み合わせて表示する方法を、実際に動くコード例とともにわかりやすく解説します。 事前準備:Matplotlibのインストール まず、Pythonのコマンドプロンプト(ターミナル)を開き、以下のコマンドでmatplotlibをインストールしてください。 pip install matplotlib 手順1:表示するデータを準備する ここでは、iPhone・Galaxy・Pixelの3機種につい