[matplotlib] 20. mpl_toolkits.axes_grid1 の使い方(ラベルとカラーバー)

matplotlib

軸ラベルを左下のみ表示

コード

解説

モジュールのインポート

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

Fig, ImageGridの生成

ImageGridを使って、同じサイズの画像を並べて表示する。

label_mode=”1″で左下の画像にのみ、ラベルを表示できる。

データの生成と画像の表示

データは、x = np.linspace(0, 4, 400)をもとにブロードキャストすることで画像データを生成している。各グリッドはリスト形式で指定できるので、for文を用いることで順次画像を表示している。

軸範囲の設定

軸範囲の設定は、grid.axes_llc.set_xticks([0, 2, 4])のようにする。この場合、 Imagegridのshare_all の設定がFalse(default)なので、左下の軸範囲のみ設定が反映される。(左上と左下のy軸の目盛が異なる)

軸ラベルを左側と下側に表示

コード

解説

ImageGridと軸範囲の設定

ImageGridで、label_mode=”L”で軸ラベルが左側と下側に表示されるようになり、share_all = True となっているので、grid.axes_llc.set_xticks([0, 2, 4])のようにすることで、すべてのグリッドで同じ軸範囲になる。

カラーバーを上部に表示

コード

解説

ImageGridにおけるカラーバーの設定

ImageGridで、cbar_location=”top”とすることでグリッド全体の上部にカラーバーを表示し、cbar_mode=”single”でカラーバーを1本にしている。

grid.cbar_axes[0].colorbar(im)とすることで、Imagegridのカラーバーを表示する位置に、imのカラーバーを表示する。cax.toggle_label(False)とすることで、カラーバーのラベルを非表示にしている。

ラベル付きカラーバーを画像の右に配置

コード

解説

ImageGridにおけるカラーバーの設定

ImageGridで、cbar_location=”right”とすることでグリッド全体の右にカラーバーを表示し、cbar_mode=”single”でカラーバーを1本にしている。

cax.toggle_label(True)とすることで、カラーバーのラベルを表示にしている。

カラーバーを各画像の上に配置

コード

解説

ImageGridにおけるカラーバーの設定

label_mode=”All”ですべての画像にラベルが配置され、 share_all=Trueで軸範囲の設定が全てに適用される。
cbar_location=”top”でカラーバーが画像の上に配置され、 cbar_mode=”each”で各画像にカラーバーが表示される。 cbar_size=”8%”でカラーバーのサイズを調整し、cbar_pad=”2%”でカラーバーと画像間の距離を調整している。

各画像のカラーバーの表示範囲の変更

コード

解説

ImageGridの設定

axes_pad=(0.65, 0.25)で各グリッド間のスペースを(x,y)で調整。

カラーバーの範囲の設定と表示

limits = ((-1, 1), (-0.75, 0.75), (-0.5, 0.5), (-.25, .25))で軸範囲を定義し、imshowでvmin=limits[i][0], vmax=limits[i][1]のようにすることで画像の表示範囲を設定している。

さらに、cax.set_yticks((limits[i][0], limits[i][1]))とすることで、カラーバーの表示範囲を変更している。

参考

https://matplotlib.org/api/toolkits/index.html#matplotlib-axes-grid1-toolkit

コメント