Alineación de cuadrículas de imágenes en Matplotlib

Beginner

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

Introducción

En este tutorial, aprenderemos a usar la función ImageGrid del módulo mpl_toolkits.axes_grid1 en Matplotlib. Crearemos una cuadrícula de 2x2 de imágenes y las alinearemos usando la función ImageGrid.

Consejos sobre la VM

Una vez que se haya iniciado la VM, haga clic en la esquina superior izquierda para cambiar a la pestaña Cuaderno y acceder a Jupyter Notebook para practicar.

A veces, es posible que tenga que esperar unos segundos a que Jupyter Notebook termine de cargarse. La validación de las operaciones no se puede automatizar debido a las limitaciones de Jupyter Notebook.

Si tiene problemas durante el aprendizaje, no dude en preguntar a Labby. Deje sus comentarios después de la sesión y lo resolveremos rápidamente para usted.

Importar las bibliotecas necesarias y crear matrices de imágenes

Comenzamos importando las bibliotecas necesarias y creando cuatro matrices de imágenes de 10x10 usando las funciones arange y reshape de la 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)

Crear un objeto de figura y un objeto ImageGrid

A continuación, creamos un objeto figure usando la función plt.figure y pasamos el argumento figsize para establecer el tamaño de la figura. Luego creamos un objeto ImageGrid usando la función ImageGrid y pasamos el figure, 111 como argumento de subtrama, (2, 2) como argumento nrows_ncols para crear una cuadrícula de 2x2 de ejes y 0.1 como argumento axes_pad para establecer el relleno entre los ejes.

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

Iterar sobre la cuadrícula y graficar las imágenes

Luego, iteramos sobre el objeto grid usando la función zip para iterar tanto sobre los ejes como sobre las matrices de imágenes. Graficamos cada imagen en su eje correspondiente usando la función imshow.

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

Mostrar la gráfica

Finalmente, mostramos la gráfica usando la función plt.show.

plt.show()

Resumen

En este tutorial, aprendimos cómo usar la función ImageGrid del módulo mpl_toolkits.axes_grid1 en Matplotlib para alinear múltiples imágenes en una cuadrícula. Creamos una cuadrícula de 2x2 de imágenes y las graficamos usando la función imshow.