Comment ajouter une étiquette sur l'axe des y à l'axe des y secondaire dans Matplotlib

Suraj Joshi 15 février 2024
  1. interaction directe avec l’objet axes
  2. Méthode DataFrame.plot pour ajouter une étiquette d’axe y à l’axe y secondaire
Comment ajouter une étiquette sur l'axe des y à l'axe des y secondaire dans Matplotlib

Nous pouvons interagir avec l’objet axes directement ou utiliser la méthode DataFrame.plot pour ajouter une étiquette d’axe y à l’axe y secondaire dans Matplotlib.

interaction directe avec l’objet axes

Nous pouvons faire un tracé avec deux axes Y différents en utilisant deux objets axes différents à l’aide de la fonction twinx(). Nous pouvons maintenant utiliser le deuxième objet axes pour tracer la deuxième variable de l’axe des y et mettre à jour son étiquette.

import numpy as np
import matplotlib.pyplot as plt

a = np.linspace(0, 5, 100)

y1 = np.sin(2 * np.pi * a)
y2 = np.cos(2 * np.pi * a)

fig, ax1 = plt.subplots()

color = "tab:red"
ax1.set_xlabel("time (s)")
ax1.set_ylabel("sin", color=color)
ax1.plot(a, y1, color=color)
ax1.tick_params(axis="y", labelcolor=color)

ax2 = ax1.twinx()

color = "tab:green"
ax2.set_ylabel("cos", color=color)
ax2.plot(a, y2, color=color)
ax2.tick_params(axis="y", labelcolor=color)

fig.tight_layout()
plt.show()

Production:

interaction directe avec les axes pour ajouter un label de l’axe des y à l’objet secondaire de l’axe des y

ax2 = ax1.twinx()

Axes.twinx() crée un nouvel Axes avec un axe y qui est opposé à l’axe original, dans cet exemple axe1.

Méthode DataFrame.plot pour ajouter une étiquette d’axe y à l’axe y secondaire

Nous pouvons ajouter une étiquette sur l’axe des y à l’axe des y secondaire avec des Pandas également. Lorsque nous définissons l’option secondary_y comme True dans la méthode DataFrame.plot, cela retourne différents axes qui peuvent être utilisés pour définir les étiquettes.

import pandas as pd
import matplotlib.pyplot as plt

df = pd.DataFrame(
    {
        "Age": [22, 12, 18, 25, 30],
        "Height": [155, 129, 138, 164, 145],
        "Weight": [60, 40, 45, 55, 60],
    }
)
ax = df.plot(kind="line", x="Age", y="Height", color="DarkBlue")

ax2 = df.plot(kind="line", x="Age", y="Weight", secondary_y=True, color="Red", ax=ax)

ax.set_ylabel("Height")
ax2.set_ylabel("Weight")
plt.tight_layout()
plt.show()

Production:

Méthode DataFrame.plot pour ajouter un label d’axe y à l’axe y secondaire

Auteur: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

Article connexe - Matplotlib Axes