はじめに
このチュートリアルでは、Matplotlib のmpl_toolkits.axes_grid1モジュールのImageGrid関数をどのように使用するかを学びます。2x2 の画像グリッドを作成し、ImageGrid関数を使って画像を整列させます。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替え、Jupyter Notebook を使って練習しましょう。
時々、Jupyter Notebook が読み込み終わるまで数秒待つ必要がある場合があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
必要なライブラリをインポートして画像配列を作成する
まず、必要なライブラリをインポートし、NumPy ライブラリのarange関数とreshape関数を使って 4 つの 10x10 の画像配列を作成します。
import matplotlib.pyplot as plt
import numpy as np
from mpl_toolkits.axes_grid1 import ImageGrid
im1 = np.arange(100).reshape((10, 10))
im2 = im1.T
im3 = np.flipud(im1)
im4 = np.fliplr(im2)
グラフと ImageGrid オブジェクトを作成する
次に、plt.figure関数を使ってfigureオブジェクトを作成し、figsize引数を指定してグラフのサイズを設定します。その後、ImageGrid関数を使ってImageGridオブジェクトを作成し、figure、サブプロット引数として111、nrows_ncols引数として(2, 2)を指定して 2x2 の軸のグリッドを作成し、軸間のパディングを設定するためにaxes_pad引数として0.1を指定します。
fig = plt.figure(figsize=(4., 4.))
grid = ImageGrid(fig, 111, nrows_ncols=(2, 2), axes_pad=0.1)
グリッドを反復処理して画像を描画する
次に、zip関数を使ってgridオブジェクトを反復処理し、軸と画像配列の両方を反復処理します。imshow関数を使って各画像を対応する軸に描画します。
for ax, im in zip(grid, [im1, im2, im3, im4]):
ax.imshow(im)
グラフを表示する
最後に、plt.show関数を使ってグラフを表示します。
plt.show()
まとめ
このチュートリアルでは、Matplotlib のmpl_toolkits.axes_grid1モジュールのImageGrid関数を使って、グリッド内に複数の画像を整列させる方法を学びました。2x2 の画像グリッドを作成し、imshow関数を使って描画しました。