Personnaliser les axes et les barres de couleur de 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

Matplotlib est une bibliothèque Python qui permet de créer des visualisations statiques, animées et interactives en Python. Elle est largement utilisée dans le calcul scientifique, l'analyse de données, l'apprentissage automatique et bien d'autres domaines. Dans ce laboratoire, vous allez apprendre à tracer des images à l'aide de Matplotlib et à manipuler l'emplacement des axes et des barres de couleur.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez sur le coin supérieur gauche pour basculer vers l'onglet Carnet d'adresses 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 limites 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.

Importation des bibliothèques

Dans cette étape, nous allons importer les bibliothèques nécessaires qui seront utilisées dans ce laboratoire. Nous utiliserons matplotlib.pyplot et cbook de matplotlib pour obtenir une image d'échantillonnage.

import matplotlib.pyplot as plt
from matplotlib import cbook

Obtenir une image de démonstration

Dans cette étape, nous allons définir une fonction pour obtenir une image de démonstration et son étendue. Nous utiliserons la fonction get_sample_data() de cbook pour obtenir une image d'échantillonnage.

def get_demo_image():
    z = cbook.get_sample_data("axes_grid/bivariate_normal.npy")  ## 15x15 array
    return z, (-3, 4, -4, 3)

Image simple et barre de couleur

Dans cette étape, nous allons créer une image simple et sa barre de couleur. Nous utiliserons la fonction imshow() de pyplot pour créer l'image et la fonction colorbar() pour créer la barre de couleur.

def demo_simple_image(ax):
    Z, extent = get_demo_image()

    im = ax.imshow(Z, extent=extent)
    cb = plt.colorbar(im)
    cb.ax.yaxis.set_tick_params(labelright=False)

Image et barre de couleur avec positionnement au moment du tracé - Une manière difficile

Dans cette étape, nous allons créer une image et sa barre de couleur avec positionnement au moment du tracé de manière difficile. Nous utiliserons SubplotDivider de mpl_toolkits.axes_grid1 pour créer un diviseur pour les axes et la barre de couleur.

def demo_locatable_axes_hard(fig):
    from mpl_toolkits.axes_grid1 import Size, SubplotDivider

    divider = SubplotDivider(fig, 2, 2, 2, aspect=True)

    ## axes pour l'image
    ax = fig.add_subplot(axes_locator=divider.new_locator(nx=0, ny=0))
    ## axes pour la barre de couleur
    ax_cb = fig.add_subplot(axes_locator=divider.new_locator(nx=2, ny=0))

    divider.set_horizontal([
        Size.AxesX(ax),  ## axes principaux
        Size.Fixed(0.05),  ## marge, 0,1 pouce
        Size.Fixed(0.2),  ## barre de couleur, 0,3 pouce
    ])
    divider.set_vertical([Size.AxesY(ax)])

    Z, extent = get_demo_image()

    im = ax.imshow(Z, extent=extent)
    plt.colorbar(im, cax=ax_cb)
    ax_cb.yaxis.set_tick_params(labelright=False)

Image et barre de couleur avec positionnement au moment du tracé - Une manière facile

Dans cette étape, nous allons créer une image et sa barre de couleur avec positionnement au moment du tracé d'une manière facile. Nous utiliserons make_axes_locatable de mpl_toolkits.axes_grid1 pour créer un diviseur pour les axes et la barre de couleur.

def demo_locatable_axes_easy(ax):
    from mpl_toolkits.axes_grid1 import make_axes_locatable

    divider = make_axes_locatable(ax)

    ax_cb = divider.append_axes("right", size="5%", pad=0.05)
    fig = ax.get_figure()
    fig.add_axes(ax_cb)

    Z, extent = get_demo_image()
    im = ax.imshow(Z, extent=extent)

    plt.colorbar(im, cax=ax_cb)
    ax_cb.yaxis.tick_right()
    ax_cb.yaxis.set_tick_params(labelright=False)

Deux images côte à côte avec une marge fixe

Dans cette étape, nous allons créer deux images côte à côte avec une marge fixe. Nous utiliserons make_axes_locatable de mpl_toolkits.axes_grid1 pour créer un diviseur pour les axes et la barre de couleur.

def demo_images_side_by_side(ax):
    from mpl_toolkits.axes_grid1 import make_axes_locatable

    divider = make_axes_locatable(ax)

    Z, extent = get_demo_image()
    ax2 = divider.append_axes("right", size="100%", pad=0.05)
    fig1 = ax.get_figure()
    fig1.add_axes(ax2)

    ax.imshow(Z, extent=extent)
    ax2.imshow(Z, extent=extent)
    ax2.yaxis.set_tick_params(labelleft=False)

Traçage

Dans cette étape, nous allons créer une figure et ajouter des sous-graphiques pour chaque image que nous souhaitons créer.

def demo():
    fig = plt.figure(figsize=(6, 6))

    ## TRACÉ 1
    ## image simple et barre de couleur
    ax = fig.add_subplot(2, 2, 1)
    demo_simple_image(ax)

    ## TRACÉ 2
    ## image et barre de couleur avec positionnement au moment du tracé -- une manière difficile
    demo_locatable_axes_hard(fig)

    ## TRACÉ 3
    ## image et barre de couleur avec positionnement au moment du tracé -- une manière facile
    ax = fig.add_subplot(2, 2, 3)
    demo_locatable_axes_easy(ax)

    ## TRACÉ 4
    ## deux images côte à côte avec une marge fixe.
    ax = fig.add_subplot(2, 2, 4)
    demo_images_side_by_side(ax)

    plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à tracer des images à l'aide de Matplotlib et à manipuler l'emplacement des axes et des barres de couleur. Nous avons étudié différentes façons de créer des images et des barres de couleur et de les positionner dans la figure. Grâce aux connaissances acquises dans ce laboratoire, vous serez en mesure de créer des visualisations plus complexes et de les manipuler pour répondre à vos besoins.