Créer un graphique multi-axes avec des axes parasites dans 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 un graphique avec plusieurs jeux de données en utilisant un axe parasite dans Python Matplotlib. Nous utiliserons mpl_toolkits.axes_grid1.parasite_axes.host_subplot et mpl_toolkits.axisartist.axislines.Axes pour créer un graphique avec plusieurs axes y.

Conseils sur la machine virtuelle

Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour passer à l'onglet Carnet d'étude 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

Tout d'abord, nous devons importer les bibliothèques nécessaires. Nous utiliserons matplotlib.pyplot pour tracer et mpl_toolkits pour créer un axe parasite.

import matplotlib.pyplot as plt
from mpl_toolkits import axisartist
from mpl_toolkits.axes_grid1 import host_subplot

Création d'axes hôtes et parasites

Nous allons créer un axe hôte et deux axes parasites à l'aide des fonctions host_subplot() et twinx(). La fonction host_subplot() crée un axe hôte, et la fonction twinx() crée des axes parasites qui partagent le même axe x que l'axe hôte.

host = host_subplot(111, axes_class=axisartist.Axes)
plt.subplots_adjust(right=0.75)

par1 = host.twinx()
par2 = host.twinx()

Ajuster l'axe parasite

Nous devons ajuster la position des axes parasites. La fonction new_fixed_axis() est utilisée pour créer un nouvel axe y du côté droit du graphique. La fonction toggle() est utilisée pour activer toutes les graduations et les étiquettes de l'axe y droit.

par2.axis["right"] = par2.new_fixed_axis(loc="right", offset=(60, 0))

par1.axis["right"].toggle(all=True)
par2.axis["right"].toggle(all=True)

Tracer les données

Nous allons tracer trois jeux de données sur le même graphique : la densité, la température et la vitesse. Nous utiliserons la fonction plot() pour tracer les données.

p1, = host.plot([0, 1, 2], [0, 1, 2], label="Density")
p2, = par1.plot([0, 1, 2], [0, 3, 2], label="Temperature")
p3, = par2.plot([0, 1, 2], [50, 30, 15], label="Velocity")

Définir les limites et les étiquettes des axes

Nous allons définir les limites et les étiquettes des axes x et y pour chaque axe à l'aide de la fonction set().

host.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Density")
par1.set(ylim=(0, 4), ylabel="Temperature")
par2.set(ylim=(1, 65), ylabel="Velocity")

Ajouter une légende et des couleurs

Nous allons ajouter une légende au graphique et colorer les étiquettes de chaque axe pour qu'elles correspondent à la couleur du jeu de données correspondant à l'aide des fonctions legend() et label.set_color().

host.legend()

host.axis["left"].label.set_color(p1.get_color())
par1.axis["right"].label.set_color(p2.get_color())
par2.axis["right"].label.set_color(p3.get_color())

Afficher le graphique

Enfin, nous allons afficher le graphique à l'aide de la fonction show().

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer un graphique avec plusieurs jeux de données en utilisant des axes parasites dans Python Matplotlib. Nous avons utilisé mpl_toolkits.axes_grid1.parasite_axes.host_subplot et mpl_toolkits.axisartist.axislines.Axes pour créer un graphique avec plusieurs axes y. Nous avons également appris à ajuster la position des axes parasites, à tracer les données, à définir les limites et les étiquettes des axes, à ajouter une légende et des couleurs au graphique, et à afficher le graphique.