Colorbar(カラーバー)はデータの値と対応する色を示します。デフォルトの色の順序を逆転させたり、Colorbarの軸自体を反転させたりしたいことがあります。本記事では、Colorbarの反転方法について詳しく解説します。
目次
基本的なColorbarの作成方法
まずは、シンプルなイメージプロットとColorbarの表示方法を確認します。以下の例では、乱数から生成した2次元データをimshow
で表示し、対応するColorbarを付与しています。
import matplotlib.pyplot as plt
import numpy as np
# 乱数データの生成
data = np.random.rand(10, 10)
# プロット作成
fig, ax = plt.subplots()
im = ax.imshow(data, cmap='viridis')
plt.colorbar(im)
plt.show()
このコードを実行すると、通常のカラーマップ「viridis」によるColorbarが表示されます。

カラーマップの反転とColorbar軸の反転
Colorbarの反転には、大きく2つの方法があります。
カラーマップ自体を反転したい
Matplotlibでは、カラーマップ名の末尾に「_r」を付けることで、カラーマップ自体を逆順に反転させることができます。たとえば、'viridis'
の代わりに'viridis_r'
を指定すれば、元のカラーマップの逆順が適用されます。
im = ax.imshow(data, cmap='viridis_r')
plt.colorbar(im)
この方法は、元のカラーマップを反転したい場合に有効です。

表示されるColorbarの軸だけを反転したい
場合によっては、カラーマップはそのままで、表示されるColorbarの軸だけを反転させたいこともあります。たとえば、縦方向のColorbarの場合は、colorbar
オブジェクトのax
に対してinvert_yaxis()
を呼び出します。
cbar = plt.colorbar(im)
cbar.ax.invert_yaxis()

このプロットでは、0.2が上、0.8が下になっています。
横方向のColorbarの場合は、invert_xaxis()
を利用します。これにより、カラーバー上の値の表示順序だけが反転され、実際のカラーマップ自体の色順序は変更されません。
まとめ
Matplotlibにおいて、Colorbarの反転は用途に応じた2通りの方法で実現可能です。
- カラーマップ名に「_r」を付けることで、元のカラーマップの色順序を反転させる方法
- Colorbarオブジェクトの
invert_yaxis()
またはinvert_xaxis()
を使用して、表示される軸のみを反転させる方法
用途やデータの特性に合わせて、適切な方法を選択してください。