Matplotlib est une puissante bibliothèque Python pour créer des visualisations. Bien que l’étiquetage de l’axe des y principal soit simple, l’ajout d’une étiquette à un axe des y secondaire nécessite une approche légèrement différente. Cet article vous guidera tout au long du processus, couvrant les techniques de base et de personnalisation avancées.
Table des matières
- Comprendre les axes Y dans Matplotlib
- Ajouter une étiquette à un axe Y secondaire
- Personnaliser l’étiquette de l’axe Y
- Utiliser les DataFrames Pandas
- Conclusion
- FAQ
Comprendre les axes Y dans Matplotlib
Les graphiques Matplotlib ont généralement un seul axe des y représentant la variable dépendante. Cependant, lors de la comparaison de jeux de données d’échelles très différentes, l’utilisation d’un axe des y principal et secondaire améliore la lisibilité. Chaque axe peut être personnalisé indépendamment avec des étiquettes, des graduations, et plus encore.
Ajouter une étiquette à un axe Y secondaire
La fonction twinx()
de Matplotlib crée un axe des y secondaire partageant le même axe des x. L’étiquette est ensuite définie à l’aide de la méthode set_ylabel()
sur ce nouvel objet axes.
import matplotlib.pyplot as plt
# Données d'exemple
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [10, 20, 15, 25, 30]
# Créer la figure et les axes
fig, ax1 = plt.subplots()
# Tracer le premier jeu de données
ax1.plot(x, y1, color='blue', label='Jeu de données 1')
ax1.set_xlabel('Axe des X')
ax1.set_ylabel('Étiquette axe Y1', color='blue')
ax1.tick_params('y', labelcolor='blue')
ax1.legend(loc='upper left')
# Créer l'axe des y secondaire
ax2 = ax1.twinx()
# Tracer le deuxième jeu de données
ax2.plot(x, y2, color='red', label='Jeu de données 2')
ax2.set_ylabel('Étiquette axe Y2', color='red') # Étiquette pour l'axe des y secondaire
ax2.tick_params('y', labelcolor='red')
ax2.legend(loc='upper right')
plt.title('Graphique avec axe Y secondaire')
plt.show()
Personnaliser l’étiquette de l’axe Y
Vous pouvez personnaliser l’apparence de l’étiquette :
- Taille de la police :
ax2.set_ylabel('Étiquette', fontsize=14)
- Famille de polices :
ax2.set_ylabel('Étiquette', fontfamily='serif')
- Rotation :
ax2.set_ylabel('Étiquette', rotation=270)
- Formatage LaTeX :
ax2.set_ylabel(r'$Delta$Étiquette')
Utiliser les DataFrames Pandas
Avec Pandas, le processus est similaire :
import pandas as pd
import matplotlib.pyplot as plt
data = {'x': [1, 2, 3, 4, 5], 'y1': [2, 4, 1, 3, 5], 'y2': [10, 20, 15, 25, 30]}
df = pd.DataFrame(data)
fig, ax1 = plt.subplots()
df.plot(x='x', y='y1', ax=ax1, color='blue', label='Jeu de données 1')
ax1.set_ylabel('Étiquette axe Y1', color='blue')
ax1.legend(loc='upper left')
ax2 = ax1.twinx()
df.plot(x='x', y='y2', ax=ax2, color='red', label='Jeu de données 2')
ax2.set_ylabel('Étiquette axe Y2', color='red')
ax2.legend(loc='upper right')
plt.show()
Conclusion
L’ajout et la personnalisation des étiquettes des axes y secondaires dans Matplotlib améliorent la clarté de la visualisation des données. twinx()
et set_ylabel()
sont vos outils clés pour créer des graphiques informatifs et visuellement attrayants.
FAQ
- Q : Plusieurs axes y secondaires ? R : Oui, mais un excès d’axes peut nuire à la lisibilité.
- Q : Ajuster les limites ? R : Utilisez
ax2.set_ylim(ymin, ymax)
. - Q : Échelles différentes ? R : Les axes y secondaires sont conçus pour cela ; Matplotlib gère la mise à l’échelle.