Matplotlib Image Grid Colorbars

Beginner

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

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.