[matplotlibの使い方] 18. カラーバーを図にあわせる

matplotlib
スポンサーリンク
スポンサーリンク

はじめに

疑似カラーマップのカラーバーを図にあわせて表示する方法について、説明する。

スポンサーリンク

コード

スポンサーリンク

解説

モジュールのインポート

mpl_toolkits.axes_grid1 からmake_axes_locatableをインポートする。

図、データの生成とカラーマップの表示

np.random.randn(100).reshape((10, 10))で正規分布に従うデータを100こ生成して、それを10✕10の形に変換した画像を表示している。

カラーバーの表示

最初に、divider = make_axes_locatable(ax)で、図を追加できるようにする。次に、cax = divider.append_axes(“right”, size=”5%”, pad=0.1)として、図(ax)のright(右)に、axの大きさの5%の大きさの図を0.1インチの隙間を空けて生成する。
最後に、plt.colorbar(im, cax=cax)でカラーバーを挿入する。

subplotを用いた場合

subplotで図が複数ある場合は、それぞれのaxに対して、divider1 = make_axes_locatable(ax1)のようにすることで図が一つのときと同様にカラーバーを追加できる。

2つのカラーマップに対してカラーバーをひとつにする

この場合は、make_axes_locatableではなく、plt.subplots_adjustを用いる。subplots_adjustにより、図の余白に関する調整ができる。ここでは、subplots_adjust(bottom=0.1, right=0.8, top=0.9)とすることで、下が0.1からで、上が0.9まで、右が0.8までの図を生成している。

ここに、cax = plt.axes([0.6, 0.1, 0.025, 0.8])で、カラーバー表示用のスペースを設定して、plt.colorbar(cax=cax)で挿入することで、2つのカラーマップに対してひとつのカラーバーとすることができる。ただし、caxのxの位置と、subplot_adjustのrightの関係が不明瞭であるので、適当な数値を入力して、試行錯誤する必要がある。

スポンサーリンク

参考

Toolkits — Matplotlib 3.1.0 documentation
matplotlib.pyplot.subplots_adjust — Matplotlib 3.1.0 documentation
スポンサーリンク
matplotlibpython
スポンサーリンク
この記事をシェアする
sabopy.comをフォローする
スポンサーリンク
サボテンパイソン

コメント