Aggiungi un'etichetta dell'asse Y all'asse Y secondario in Matplotlib

Suraj Joshi 30 gennaio 2023 30 marzo 2021
  1. Interazione diretta con l’oggetto axes
  2. Metodo DataFrame.plot per aggiungere un’etichetta dell’asse Y all’asse Y secondario
Aggiungi un'etichetta dell'asse Y all'asse Y secondario in Matplotlib

Possiamo interagire direttamente con l’oggetto axes o utilizzare il metodo DataFrame.plot per aggiungere un’etichetta dell’asse y all’asse y secondario in Matplotlib.

Interazione diretta con l’oggetto axes

Possiamo creare un grafico con due diversi assi y usando due diversi oggetti axes con l’aiuto della funzione twinx(). Ora possiamo usare il secondo oggetto axes per creare il grafico della seconda variabile dell’asse y e aggiornare la sua etichetta.

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()

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

ax2 = ax1.twinx()  
ax2.set_ylabel('cos', color='green')  
ax2.plot(a, y2, color=color)
ax2.tick_params(axis='y', labelcolor=color)

fig.tight_layout()
plt.show()

Produzione:

interazione diretta con gli assi per aggiungere un’etichetta dell’asse y all’oggetto asse y secondario

ax2 = ax1.twinx()

Axes.twinx() crea un nuovo Axes con un asse y opposto all’asse originale, in questo esempio ax1.

Metodo DataFrame.plot per aggiungere un’etichetta dell’asse Y all’asse Y secondario

Possiamo aggiungere un’etichetta dell’asse y all’asse y secondario anche con i pandas. Quando impostiamo l’opzione secondary_y su True nel metodo DataFrame.plot, restituisce diversi assi che possono essere usati per impostare le etichette.

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()

Produzione:

DataFrame.plot per aggiungere un’etichetta dell’asse y all’asse y secondario

Author: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

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

LinkedIn

Articolo correlato - Matplotlib Axes