[matplotlibの使い方] 19. mpl_toolkits.axes_grid1 の使い方(画像の表示)

matplotlib

axes_grid1のImageGridを用いて複数の画像を表示する方法

コード

解説

モジュールのインポート

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

Fig, ImageGridの生成

ImageGridを使うことで、同じサイズの画像を並べて表示することができる。

figオブジェクトをfig = plt.figure(1, (4., 4.))で作成。
ImageGridの 111, は subplot(111)と似たような感じで、各グリッドに表示する画像の配置を設定する。
nrows_ncolsはグリッドの構造で、ここでは、(2, 2)とすることで, 2×2 の画像を表示するグリッドを作成している。
axes_padはグリッドの画像の表示間隔で、0.1とすることで、少し隙間を空けている。

画像の表示

各グリッドはリスト形式で指定できるので、for文を用いることで順次画像を表示している。データは、np.random.randn(100)でランダムな100個のデータを生成して、それをreshape((10, 10))で10✕10の形状にすることで画像データとして取得している。

サイズの異なる画像を並べて表示

データの生成

x = np.linspace(0, 4, 20)で、Z=np.sin(2*x) * np.cos(4*x[:, np.newaxis])とブロードキャストすることで、Zデータを生成している。Zのshapeは(20, 20)となる。

Fig, ImageGridの生成

add_all=Trueで図が表示されるようになる。Falseとした場合、<Figure size 396×252 with 0 Axes>となり、図が生成されない。
nrows_ncols=(1, 3)としているので、横に3つの画像が並ぶこととなる。

label_mode=”L”で左と下にのみ軸ラベルが表示される。

画像の表示

im2とim3はZの横幅を半分としている。
vmin, vmax = Z.min(), Z.max()は、カラーバーの表示範囲の設定を行っている。

参考

Toolkits — Matplotlib 3.1.1 documentation
matplotlibpython
この記事をシェアする
sabopy.comをフォローする
サボテンパイソン

コメント