Data Visualization

Maîtriser la rotation des étiquettes d’axe X avec Matplotlib

Spread the love

Faire pivoter les étiquettes des graduations de l’axe des x dans Matplotlib est une tâche courante lorsqu’on travaille avec des étiquettes longues ou un texte qui se chevauche. Cet article explore plusieurs méthodes pour obtenir des visualisations claires et lisibles, offrant de la flexibilité pour divers scénarios de tracé.

Table des matières

Utiliser plt.xticks()

C’est l’approche la plus simple pour faire pivoter les étiquettes des graduations de l’axe des x. Le paramètre rotation contrôle directement l’angle de rotation.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Très longue étiquette ' + str(i) for i in x]

plt.plot(x, y)
plt.xticks(x, labels, rotation=45, ha='right')  # ha='right' aligne les étiquettes à droite
plt.xlabel("Axe des x")
plt.ylabel("Axe des y")
plt.title("Rotation des étiquettes de l'axe des x")
plt.tight_layout()  # Empêche le chevauchement des étiquettes
plt.show()

L’argument ha='right' est crucial pour un alignement correct après la rotation. plt.tight_layout() aide à éviter le chevauchement des étiquettes et améliore la lisibilité globale.

Utiliser fig.autofmt_xdate()

Spécialement conçue pour les étiquettes de date, fig.autofmt_xdate() ajuste automatiquement la rotation et l’alignement pour une lisibilité optimale.


import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import datetime

dates = [datetime.date(2024, 1, i) for i in range(1, 11)]
values = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(dates, values)
fig.autofmt_xdate(rotation=45)
plt.show()

Cette méthode simplifie le processus lorsqu’on travaille avec des données de séries temporelles, gérant automatiquement la mise en forme des dates et le placement des étiquettes.

Utiliser ax.set_xticklabels()

Cette méthode offre plus de contrôle, permettant de personnaliser les étiquettes avant la rotation.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)
labels = ['Étiquette ' + str(i) for i in x]

fig, ax = plt.subplots()
ax.plot(x, y)
ax.set_xticklabels(labels, rotation=70)
plt.show()

Utiliser plt.setp()

plt.setp() fournit un moyen concis de modifier les propriétés existantes des étiquettes des graduations, y compris la rotation.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
plt.setp(ax.get_xticklabels(), rotation=30)
plt.show()

Utiliser ax.tick_params()

Pour un contrôle précis sur diverses propriétés des graduations, y compris la rotation, ax.tick_params() est l’option la plus polyvalente.


import matplotlib.pyplot as plt
import numpy as np

x = np.arange(10)
y = np.random.rand(10)

fig, ax = plt.subplots()
ax.plot(x, y)
ax.tick_params(axis='x', labelrotation=60)
plt.show()

Optimiser l’alignement des étiquettes

Quelle que soit la méthode choisie, un alignement correct est crucial pour la lisibilité. Le paramètre ha (alignement horizontal) (‘left’, ‘center’, ‘right’) dans plt.xticks() ou ax.set_xticklabels() contrôle le positionnement horizontal. Expérimentez pour trouver l’alignement optimal pour votre graphique. Pensez toujours à utiliser plt.tight_layout() pour éviter le chevauchement des étiquettes.

En maîtrisant ces techniques, vous pouvez créer des graphiques Matplotlib clairs et informatifs, même avec des étiquettes d’axe des x complexes ou longues.

Laisser un commentaire

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