Due assi y con twinx
Disegna due misure con unità diverse in un solo grafico con un secondo asse y creato da ax.twinx.
Introduzione
La pioggia in millimetri e la temperatura in gradi non condividono una scala: su un solo asse, una delle due sembra piatta. ax.twinx crea un secondo Axes che condivide l'asse x ma ha il proprio asse y a destra.
ax1 disegna le barre della pioggia con l'asse y a sinistra. ax2 = ax1.twinx() condivide i mesi ma ha un nuovo asse y a destra per la temperatura. Colorare ogni etichetta come i suoi dati dice al lettore quale asse appartiene a quale serie. Usa due assi con parsimonia: il confronto tra le serie si fraintende facilmente.
Visualizzatore interattivo
Disattiva il secondo asse y per capire perché serve: su un'unica scala la linea della temperatura resta schiacciata in basso.
Esempio Matplotlib eseguibile
import matplotlib.pyplot as plt
months = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"]
temperature = [3, 5, 9, 14, 18, 22, 25, 24, 20, 14, 8, 4]
rain = [60, 50, 55, 45, 60, 70, 80, 85, 60, 75, 80, 70]
fig, ax1 = plt.subplots(figsize=(7, 4))
ax1.bar(months, rain, color="tab:blue", alpha=0.4)
ax1.set_ylabel("Rain (mm)", color="tab:blue")
ax2 = ax1.twinx()
ax2.plot(months, temperature, color="tab:red", marker="o")
ax2.set_ylabel("Temperature (°C)", color="tab:red")
ax1.set_title("Climate in one chart")
plt.show()
