Créer une grille d'images avec Matplotlib

PythonPythonBeginner
Pratiquer maintenant

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

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

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.