Tracé avec plusieurs axes y à l'aide 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

Dans la visualisation de données, il est souvent nécessaire de tracer plusieurs variables avec des unités de mesure différentes sur le même graphique. Une méthode courante pour y arriver est d'utiliser plusieurs axes y, où chaque axe y correspond à une variable différente. Dans ce laboratoire, nous allons apprendre à créer un graphique avec plusieurs axes y à l'aide de Matplotlib.

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 Notebook pour accéder à Jupyter Notebook pour la pratique.

Parfois, vous devrez peut-être attendre quelques secondes pour que Jupyter Notebook ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limites de Jupyter Notebook.

Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez des commentaires après la session, et nous réglerons rapidement le problème pour vous.

Importez les bibliothèques nécessaires

Nous commençons par importer les bibliothèques requises, Matplotlib et NumPy. Matplotlib est une bibliothèque de visualisation de données, et NumPy est une bibliothèque pour le calcul numérique en Python.

import matplotlib.pyplot as plt
import numpy as np

Créez un objet figure et axes

Nous créons un objet figure et axes, qui représente un seul tracé dans Matplotlib.

fig, ax = plt.subplots()

Ajoutez un deuxième axe y

Nous ajoutons un deuxième axe y au tracé en utilisant la méthode twinx. Cela créera un nouvel axe y du côté droit du tracé.

twin1 = ax.twinx()

Réglez la position du deuxième axe y

Nous réglons la position du deuxième axe y en utilisant la méthode set_position. Cela déplacera le deuxième axe y à droite de l'axe y original.

twin1.spines.right.set_position(("axes", 1.2))

Ajoutez des données au tracé

Nous ajoutons des données au tracé en utilisant la méthode plot. Nous ajoutons trois lignes au tracé, chacune avec un axe y différent.

p1, = ax.plot([0, 1, 2], [0, 1, 2], "C0", label="Density")
p2, = twin1.plot([0, 1, 2], [0, 3, 2], "C1", label="Temperature")
p3, = twin2.plot([0, 1, 2], [50, 30, 15], "C2", label="Velocity")

Réglez les limites et les étiquettes pour les axes

Nous réglons les limites et les étiquettes pour chaque axe y en utilisant la méthode set. Nous définissons également la couleur des étiquettes pour correspondre à la couleur des lignes en utilisant la méthode set_color.

ax.set(xlim=(0, 2), ylim=(0, 2), xlabel="Distance", ylabel="Densité")
twin1.set(ylim=(0, 4), ylabel="Température")
twin2.set(ylim=(1, 65), ylabel="Vitesse")

ax.yaxis.label.set_color(p1.get_color())
twin1.yaxis.label.set_color(p2.get_color())
twin2.yaxis.label.set_color(p3.get_color())

Réglez les couleurs des graduations

Nous réglons les couleurs des graduations pour chaque axe y pour qu'elles correspondent à la couleur des étiquettes.

ax.tick_params(axis='y', colors=p1.get_color())
twin1.tick_params(axis='y', colors=p2.get_color())
twin2.tick_params(axis='y', colors=p3.get_color())

Ajoutez une légende au tracé

Nous ajoutons une légende au tracé en utilisant la méthode legend. Nous passons une liste d'objets de ligne en tant que paramètre handles.

ax.legend(handles=[p1, p2, p3])

Affichez le tracé

Nous affichons le tracé en utilisant la méthode show.

plt.show()

Sommaire

Dans ce laboratoire, nous avons appris à créer un graphique avec plusieurs axes y à l'aide de Matplotlib. Nous avons créé une figure et un objet d'axes, ajouté un axe y jumelé, défini la position de l'axe y jumelé, ajouté des données au tracé, défini les limites et les étiquettes pour les axes, défini les couleurs des graduations, ajouté une légende au tracé et affiché le tracé. Cette technique peut être utile lors de la comparaison de variables avec des unités de mesure différentes sur le même graphique.