Matplotlib における画像グリッドの整列

Beginner

This tutorial is from open-source community. Access the source code

はじめに

このチュートリアルでは、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、サブプロット引数として111nrows_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関数を使って描画しました。