HOWTO · Matplotlib

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

Nous pouvons ajouter une étiquette d'axe y à l'axe y secondaire dans Matplotlib en interagissant avec l'objet axes et en utilisant directement la méthode pandas.DataFrame.plot.

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