Introducción
Este tutorial demostrará cómo crear una cuadrícula de imágenes utilizando ImageGrid de Matplotlib. Crearemos una cuadrícula de 2x2 de imágenes y exploraremos varias maneras de agregar barras de color a la cuadrícula.
Consejos sobre la VM
Una vez finalizada la inicialización de 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 y datos necesarios
En primer lugar, necesitamos importar las bibliotecas y datos necesarios para crear nuestra cuadrícula. Usaremos matplotlib.pyplot para la representación gráfica, cbook para obtener un conjunto de datos de muestra y ImageGrid para crear nuestra cuadrícula.
import matplotlib.pyplot as plt
from matplotlib import cbook
from mpl_toolkits.axes_grid1 import ImageGrid
## Obtener datos de muestra
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") ## Matriz 15x15
extent = (-3, 4, -4, 3)
Crear una cuadrícula de imágenes 2x2 con una sola barra de color
Nuestra primera cuadrícula será una cuadrícula de imágenes 2x2 con una sola barra de color. Usaremos la función ImageGrid para crear la cuadrícula y especificar el número de filas y columnas que queremos. También especificaremos la ubicación de la barra de color y estableceremos share_all en True para compartir la barra de color entre todas las imágenes.
## Crear una cuadrícula de imágenes 2x2 con una sola barra de color
grid = ImageGrid(
fig, ## Objeto Figure
141, ## Ubicación del subplot
nrows_ncols=(2, 2), ## Número de filas y columnas
axes_pad=0.0, ## Espaciado entre los ejes
label_mode="L", ## Modo de etiquetado
share_all=True, ## Compartir barra de color entre todas las imágenes
cbar_location="top", ## Ubicación de la barra de color
cbar_mode="single" ## Modo de barra de color
)
## Graficar imágenes en la cuadrícula
for ax in grid:
im = ax.imshow(Z, extent=extent)
## Agregar barra de color a la cuadrícula
grid.cbar_axes[0].colorbar(im)
for cax in grid.cbar_axes:
cax.tick_params(labeltop=False)
Crear una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color
Nuestra siguiente cuadrícula será una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color. Usaremos nuevamente la función ImageGrid, pero esta vez estableceremos cbar_mode en "each" para especificar que cada imagen debe tener su propia barra de color.
## Crear una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color
grid = ImageGrid(
fig, ## Objeto Figure
142, ## Ubicación del subplot
nrows_ncols=(2, 2), ## Número de filas y columnas
axes_pad=0.1, ## Espaciado entre los ejes
label_mode="1", ## Modo de etiquetado
share_all=True, ## Compartir barra de color entre todas las imágenes
cbar_location="top", ## Ubicación de la barra de color
cbar_mode="each", ## Modo de barra de color
cbar_size="7%", ## Tamaño de la barra de color
cbar_pad="2%" ## Espaciado entre la barra de color y las imágenes
)
## Graficar imágenes en la cuadrícula y agregar barras de color
for ax, cax in zip(grid, grid.cbar_axes):
im = ax.imshow(Z, extent=extent)
cax.colorbar(im)
cax.tick_params(labeltop=False)
Crear una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color y un rango de barra de color diferente
Nuestra última cuadrícula también será una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color, pero esta vez usaremos un rango de barra de color diferente para cada imagen. Estableceremos el rango de la barra de color usando vmin y vmax al graficar cada imagen.
## Crear una cuadrícula de imágenes 2x2 con cada imagen teniendo su propia barra de color y un rango de barra de color diferente
grid = ImageGrid(
fig, ## Objeto Figure
143, ## Ubicación del subplot
nrows_ncols=(2, 2), ## Número de filas y columnas
axes_pad=(0.45, 0.15), ## Espaciado entre los ejes
label_mode="1", ## Modo de etiquetado
share_all=True, ## Compartir barra de color entre todas las imágenes
cbar_location="right", ## Ubicación de la barra de color
cbar_mode="each", ## Modo de barra de color
cbar_size="7%", ## Tamaño de la barra de color
cbar_pad="2%" ## Espaciado entre la barra de color y las imágenes
)
## Graficar imágenes en la cuadrícula y agregar barras de color
limits = ((0, 1), (-2, 2), (-1.7, 1.4), (-1.5, 1)) ## Rangos de barra de color diferentes
for ax, cax, vlim in zip(grid, grid.cbar_axes, limits):
im = ax.imshow(Z, extent=extent, vmin=vlim[0], vmax=vlim[1])
cb = cax.colorbar(im)
cb.set_ticks((vlim[0], vlim[1]))
Resumen
En este tutorial, aprendimos cómo crear una cuadrícula de imágenes usando ImageGrid de Matplotlib. Exploramos diferentes maneras de agregar barras de color a la cuadrícula, incluyendo usar una sola barra de color para todas las imágenes, dar a cada imagen su propia barra de color y dar a cada imagen su propia barra de color con un rango de barra de color diferente.