Data Visualization

Maîtriser Matplotlib : Ajouter et personnaliser les étiquettes d’un deuxième axe Y

Spread the love

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

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.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *