Introduction
Ce tutoriel montrera comment créer une grille d'images à l'aide de ImageGrid de Matplotlib. Nous allons créer une grille 2x2 d'images et explorer diverses façons d'ajouter des barres de couleur à la grille.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet de notes pour accéder au carnet Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Importez les bibliothèques et les données nécessaires
Nous devons tout d'abord importer les bibliothèques et les données nécessaires pour créer notre grille. Nous utiliserons matplotlib.pyplot pour tracer, cbook pour obtenir un ensemble de données d'échantillonnage et ImageGrid pour créer notre grille.
import matplotlib.pyplot as plt
from matplotlib import cbook
from mpl_toolkits.axes_grid1 import ImageGrid
## Obtenez des données d'échantillonnage
Z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") ## Tableau 15x15
extent = (-3, 4, -4, 3)
Créez une grille de 2x2 images avec une seule barre de couleur
Notre première grille sera une grille de 2x2 images avec une seule barre de couleur. Nous utiliserons la fonction ImageGrid pour créer la grille et spécifier le nombre de lignes et de colonnes que nous souhaitons. Nous spécifierons également l'emplacement de la barre de couleur et définirons share_all sur True pour partager la barre de couleur entre toutes les images.
## Créez une grille de 2x2 images avec une seule barre de couleur
grid = ImageGrid(
fig, ## Objet Figure
141, ## Emplacement du sous-graphique
nrows_ncols=(2, 2), ## Nombre de lignes et de colonnes
axes_pad=0.0, ## Espacement entre les axes
label_mode="L", ## Mode d'étiquetage
share_all=True, ## Partager la barre de couleur entre toutes les images
cbar_location="top", ## Emplacement de la barre de couleur
cbar_mode="single" ## Mode de la barre de couleur
)
## Tracez les images sur la grille
for ax in grid:
im = ax.imshow(Z, extent=extent)
## Ajoutez une barre de couleur à la grille
grid.cbar_axes[0].colorbar(im)
for cax in grid.cbar_axes:
cax.tick_params(labeltop=False)
Créez une grille de 2x2 images avec chaque image ayant sa propre barre de couleur
Notre prochaine grille sera une grille de 2x2 images avec chaque image ayant sa propre barre de couleur. Nous utiliserons à nouveau la fonction ImageGrid, mais cette fois-ci nous définirons cbar_mode sur "each" pour spécifier que chaque image devrait avoir sa propre barre de couleur.
## Créez une grille de 2x2 images avec chaque image ayant sa propre barre de couleur
grid = ImageGrid(
fig, ## Objet Figure
142, ## Emplacement du sous-graphique
nrows_ncols=(2, 2), ## Nombre de lignes et de colonnes
axes_pad=0.1, ## Espacement entre les axes
label_mode="1", ## Mode d'étiquetage
share_all=True, ## Partager la barre de couleur entre toutes les images
cbar_location="top", ## Emplacement de la barre de couleur
cbar_mode="each", ## Mode de la barre de couleur
cbar_size="7%", ## Taille de la barre de couleur
cbar_pad="2%" ## Espacement entre la barre de couleur et les images
)
## Tracez les images sur la grille et ajoutez les barres de couleur
for ax, cax in zip(grid, grid.cbar_axes):
im = ax.imshow(Z, extent=extent)
cax.colorbar(im)
cax.tick_params(labeltop=False)
Créez une grille de 2x2 images avec chaque image ayant sa propre barre de couleur et une plage de couleur différente
Notre dernière grille sera également une grille de 2x2 images avec chaque image ayant sa propre barre de couleur, mais cette fois-ci nous utiliserons une plage de couleur différente pour chaque image. Nous définirons la plage de la barre de couleur en utilisant vmin et vmax lors du tracé de chaque image.
## Créez une grille de 2x2 images avec chaque image ayant sa propre barre de couleur et une plage de couleur différente
grid = ImageGrid(
fig, ## Objet Figure
143, ## Emplacement du sous-graphique
nrows_ncols=(2, 2), ## Nombre de lignes et de colonnes
axes_pad=(0.45, 0.15), ## Espacement entre les axes
label_mode="1", ## Mode d'étiquetage
share_all=True, ## Partager la barre de couleur entre toutes les images
cbar_location="right", ## Emplacement de la barre de couleur
cbar_mode="each", ## Mode de la barre de couleur
cbar_size="7%", ## Taille de la barre de couleur
cbar_pad="2%" ## Espacement entre la barre de couleur et les images
)
## Tracez les images sur la grille et ajoutez les barres de couleur
limits = ((0, 1), (-2, 2), (-1.7, 1.4), (-1.5, 1)) ## Plages de barres de couleur différentes
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]))
Résumé
Dans ce tutoriel, nous avons appris à créer une grille d'images à l'aide de ImageGrid de Matplotlib. Nous avons exploré différentes façons d'ajouter des barres de couleur à la grille, y compris en utilisant une seule barre de couleur pour toutes les images, en donnant à chaque image sa propre barre de couleur et en donnant à chaque image sa propre barre de couleur avec une plage de couleur différente.