Alinhamento de Grade de Imagens em Matplotlib

Beginner

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

Introdução

Neste tutorial, aprenderemos como usar a função ImageGrid do módulo mpl_toolkits.axes_grid1 em Matplotlib. Criaremos uma grade de imagens 2x2 e as alinharemos usando a função ImageGrid.

Dicas para a VM (Máquina Virtual)

Após a inicialização da VM, clique no canto superior esquerdo para mudar para a aba Notebook e acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação das operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão, e resolveremos o problema prontamente para você.

Importar as bibliotecas necessárias e criar arrays de imagem

Começamos importando as bibliotecas necessárias e criando quatro arrays de imagem 10x10 usando as funções arange e reshape da biblioteca NumPy.

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)

Criar uma figura e um objeto ImageGrid

Em seguida, criamos um objeto figure usando a função plt.figure e passamos o argumento figsize para definir o tamanho da figura. Em seguida, criamos um objeto ImageGrid usando a função ImageGrid e passamos a figure, 111 como o argumento de subplot, (2, 2) como o argumento nrows_ncols para criar uma grade de eixos 2x2 e 0.1 como o argumento axes_pad para definir o preenchimento entre os eixos.

fig = plt.figure(figsize=(4., 4.))
grid = ImageGrid(fig, 111, nrows_ncols=(2, 2), axes_pad=0.1)

Iterar sobre a grade e plotar as imagens

Em seguida, iteramos sobre o objeto grid usando a função zip para iterar sobre os eixos e os arrays de imagem. Plotamos cada imagem em seu eixo correspondente usando a função imshow.

for ax, im in zip(grid, [im1, im2, im3, im4]):
    ax.imshow(im)

Mostrar o gráfico

Finalmente, mostramos o gráfico usando a função plt.show.

plt.show()

Resumo

Neste tutorial, aprendemos como usar a função ImageGrid do módulo mpl_toolkits.axes_grid1 em Matplotlib para alinhar múltiplas imagens em uma grade. Criamos uma grade 2x2 de imagens e as plotamos usando a função imshow.