Deux axes y avec twinx
Tracez deux mesures d'unités différentes sur un même graphique grâce à un second axe y créé par ax.twinx.
Introduction
La pluie en millimètres et la température en degrés n'ont pas la même échelle : sur un seul axe, l'une paraît plate. ax.twinx crée un second Axes qui partage l'axe x mais possède son propre axe y à droite.
ax1 trace les barres de pluie avec son axe y à gauche. ax2 = ax1.twinx() partage les mois mais reçoit un nouvel axe y à droite pour la température. Colorer chaque étiquette d'axe comme ses données indique quel axe va avec quelle série. Utilisez deux axes avec modération : la comparaison entre les séries est facile à mal lire.
Visualiseur interactif
Désactivez le second axe y pour voir à quoi il sert : sur une seule échelle, la courbe de température est écrasée en bas.
Exemple Matplotlib exécutable
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()
