はじめに
カラーマップのカラーバーを図にあわせて表示する方法について説明する。
コード&解説
モジュールのインポート
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)のようにすることで上の例と同様にカラーバーを追加できる。
subplotを用いた場合(横に並べる)
横に並べる場合も同様にする。
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の関係が不明瞭であるので、適当な数値を入力して、試行錯誤する必要がある。
コードをダウンロード(.pyファイル) コードをダウンロード(.ipynbファイル)
コメント
[…] [matplotlibの使い方] 18. カラーバーを図にあわせる疑似カラーマップのカラーバーを図にあわせて表示sabopy.com2019.03.01 […]
[…] [matplotlibの使い方] 18. カラーバーを図にあわせる疑似カラーマップのカラーバーを図にあわせて表示sabopy.com2019.03.01 (adsbygoogle = window.adsbygoogle || []).push({}); […]