Création de grilles d'axes personnalisées 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

Dans ce laboratoire, nous allons apprendre à créer une grille personnalisée d'axes avec Matplotlib en utilisant le module mpl_toolkits.axes_grid1. Nous allons créer deux exemples : l'un avec des tailles et des mises en page d'axes fixes, et l'autre avec des tailles d'axes évolutives et des mises en page fixes.

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 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 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.

Importation des bibliothèques requises

Nous commencerons par importer les bibliothèques requises : matplotlib.pyplot pour la visualisation et mpl_toolkits.axes_grid1 pour créer la grille personnalisée d'axes.

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import Divider, Size

Définition d'une fonction d'aide

Nous allons définir une fonction d'aide label_axes() qui sera utilisée pour placer une étiquette au centre d'un axe et supprimer les graduations de l'axe.

def label_axes(ax, text):
    """Place a label at the center of an Axes, and remove the axis ticks."""
    ax.text(.5,.5, text, transform=ax.transAxes,
            horizontalalignment="center", verticalalignment="center")
    ax.tick_params(bottom=False, labelbottom=False,
                   left=False, labelleft=False)

Création d'une grille personnalisée d'axes avec des tailles et des mises en page fixes

Nous allons créer une grille personnalisée d'axes avec des tailles et des mises en page fixes. Nous utiliserons la classe Divider pour diviser le rectangle d'axes en une grille avec des tailles spécifiées par horiz * vert. Nous ajouterons ensuite quatre axes à la figure en utilisant la méthode add_axes() et spécifierons les positions de chaque axe en utilisant la méthode new_locator() de la classe Divider.

## Sizes are in inches.
horiz = [Size.Fixed(1.), Size.Fixed(.5), Size.Fixed(1.5), Size.Fixed(.5)]
vert = [Size.Fixed(1.5), Size.Fixed(.5), Size.Fixed(1.)]

rect = (0.1, 0.1, 0.8, 0.8)
fig = plt.figure(figsize=(6, 6))
fig.suptitle("Fixed axes sizes, fixed paddings")

div = Divider(fig, rect, horiz, vert, aspect=False)

## The rect parameter will actually be ignored and overridden by axes_locator.
ax1 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
label_axes(ax1, "nx=0, ny=0")
ax2 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
label_axes(ax2, "nx=0, ny=2")
ax3 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
label_axes(ax3, "nx=2, ny=2")
ax4 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
label_axes(ax4, "nx=2, nx1=4, ny=0")

plt.show()

Création d'une grille personnalisée d'axes avec des tailles évolutives et des mises en page fixes

Nous allons créer une autre grille personnalisée d'axes avec des tailles évolutives et des mises en page fixes. Nous utiliserons l'option Size.Scaled() pour spécifier des tailles d'axes qui évoluent avec la taille de la figure. Les étapes restantes sont similaires à l'exemple précédent.

## Sizes are in inches.
horiz = [Size.Scaled(1.5), Size.Fixed(.5), Size.Scaled(1.), Size.Scaled(.5)]
vert = [Size.Scaled(1.), Size.Fixed(.5), Size.Scaled(1.5)]

rect = (0.1, 0.1, 0.8, 0.8)
fig = plt.figure(figsize=(6, 6))
fig.suptitle("Scalable axes sizes, fixed paddings")

div = Divider(fig, rect, horiz, vert, aspect=False)

## The rect parameter will actually be ignored and overridden by axes_locator.
ax1 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=0))
label_axes(ax1, "nx=0, ny=0")
ax2 = fig.add_axes(rect, axes_locator=div.new_locator(nx=0, ny=2))
label_axes(ax2, "nx=0, ny=2")
ax3 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, ny=2))
label_axes(ax3, "nx=2, ny=2")
ax4 = fig.add_axes(rect, axes_locator=div.new_locator(nx=2, nx1=4, ny=0))
label_axes(ax4, "nx=2, nx1=4, ny=0")

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer une grille personnalisée d'axes avec Matplotlib en utilisant le module mpl_toolkits.axes_grid1. Nous avons créé deux exemples : l'un avec des tailles d'axes fixes et des mises en page, et l'autre avec des tailles d'axes évolutives et des mises en page fixes. Nous avons utilisé la classe Divider pour diviser le rectangle d'axes en une grille avec des tailles spécifiées par horiz * vert et ajouté des axes à la figure en utilisant la méthode add_axes() et la méthode new_locator() de la classe Divider.