Introduction
Ce laboratoire porte sur la création de grilles d'images avec des barres de couleur à l'aide de Matplotlib. Le code d'exemple fourni montre comment utiliser une barre de couleur commune pour chaque ligne ou colonne d'une grille d'images.
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 Notebook Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le Notebook Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du Notebook 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.
Importation des bibliothèques
Tout d'abord, nous devons importer les bibliothèques nécessaires pour créer la grille d'images avec des barres de couleur.
import matplotlib.pyplot as plt
from matplotlib import cbook
from mpl_toolkits.axes_grid1 import AxesGrid
Définir les données d'image
Nous définissons une fonction qui renvoie des données d'image d'échantillonnage et son étendue.
def get_demo_image():
z = cbook.get_sample_data("axes_grid/bivariate_normal.npy") ## 15x15 array
return z, (-3, 4, -4, 3)
Créer une grille avec une barre de couleur en bas
Nous créons une grille de 2x2 images avec une barre de couleur pour chaque colonne.
def demo_bottom_cbar(fig):
grid = AxesGrid(fig, 121, ## similaire à subplot(121)
nrows_ncols=(2, 2),
axes_pad=0.10,
share_all=True,
label_mode="1",
cbar_location="bottom",
cbar_mode="edge",
cbar_pad=0.25,
cbar_size="15%",
direction="column"
)
Z, extent = get_demo_image()
cmaps = ["automne", "été"]
for i in range(4):
im = grid[i].imshow(Z, extent=extent, cmap=cmaps[i//2])
if i % 2:
grid.cbar_axes[i//2].colorbar(im)
for cax in grid.cbar_axes:
cax.axis[cax.orientation].set_label("Barre")
## Cela affecte tous les axes car share_all = True.
grid.axes_llc.set_xticks([-2, 0, 2])
grid.axes_llc.set_yticks([-2, 0, 2])
Créer une grille avec une barre de couleur à droite
Nous créons une grille de 2x2 images avec une barre de couleur pour chaque ligne.
def demo_right_cbar(fig):
grid = AxesGrid(fig, 122, ## similaire à subplot(122)
nrows_ncols=(2, 2),
axes_pad=0.10,
label_mode="1",
share_all=True,
cbar_location="right",
cbar_mode="edge",
cbar_size="7%",
cbar_pad="2%",
)
Z, extent = get_demo_image()
cmaps = ["printemps", "hiver"]
for i in range(4):
im = grid[i].imshow(Z, extent=extent, cmap=cmaps[i//2])
if i % 2:
grid.cbar_axes[i//2].colorbar(im)
for cax in grid.cbar_axes:
cax.axis[cax.orientation].set_label('Foo')
## Cela affecte tous les axes car nous avons défini share_all = True.
grid.axes_llc.set_xticks([-2, 0, 2])
grid.axes_llc.set_yticks([-2, 0, 2])
Créer la figure et appeler les fonctions
Enfin, nous créons la figure et appelons les fonctions pour créer les grilles d'images avec des barres de couleur.
fig = plt.figure()
demo_bottom_cbar(fig)
demo_right_cbar(fig)
plt.show()
Sommaire
Matplotlib fournit un moyen simple de créer des grilles d'images avec des barres de couleur à l'aide de l'outil AxesGrid. Ce laboratoire a démontré comment créer une grille de 2x2 images avec une barre de couleur pour chaque colonne et une grille de 2x2 images avec une barre de couleur pour chaque ligne. En suivant ces étapes, vous pouvez créer des grilles d'images avec des barres de couleur pour vos propres jeux de données.