Data Visualization

Maîtriser les Légendes Matplotlib : Deux Méthodes pour Ajuster l’Épaisseur des Lignes

Spread the love

Matplotlib est une puissante librairie Python pour créer des visualisations. Les légendes sont essentielles à la compréhension des graphiques, et la personnalisation de leur apparence améliore la lisibilité. Cet article présente deux méthodes pour ajuster la largeur des lignes dans les légendes Matplotlib.

Table des matières

Régler directement la largeur de ligne avec set_linewidth()

La méthode set_linewidth() offre un contrôle précis sur les lignes individuelles de la légende. Elle manipule directement les legendHandles de la légende, qui sont des objets Line2D.


import matplotlib.pyplot as plt

# Données d'exemple
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Création du graphique
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Ligne 1', linewidth=2)
line2, = ax.plot(x, y2, label='Ligne 2', linewidth=1)

# Création de la légende
legend = ax.legend()

# Accès et modification de la largeur de ligne
legend.legendHandles[0].set_linewidth(4)  # Ligne 1 dans la légende
legend.legendHandles[1].set_linewidth(3)  # Ligne 2 dans la légende

# Affichage du graphique
plt.show()

Ce code trace d’abord les données, puis accède aux handles de la légende via legend.legendHandles. set_linewidth() ajuste la largeur de chaque ligne. legendHandles[0] fait référence à la première ligne, et ainsi de suite.

Utiliser matplotlib.pyplot.setp() pour une modification concise

matplotlib.pyplot.setp() fournit un moyen plus compact de modifier plusieurs propriétés simultanément.


import matplotlib.pyplot as plt

# Données d'exemple (mêmes que précédemment)
x = [1, 2, 3, 4, 5]
y1 = [2, 4, 1, 3, 5]
y2 = [1, 3, 5, 2, 4]

# Création du graphique
fig, ax = plt.subplots()
line1, = ax.plot(x, y1, label='Ligne 1', linewidth=2)
line2, = ax.plot(x, y2, label='Ligne 2', linewidth=1)

# Création de la légende
legend = ax.legend()

# Modification de la largeur de ligne en utilisant setp()
plt.setp(legend.legendHandles, 'linewidth', [4, 3])

# Affichage du graphique
plt.show()

plt.setp() définit efficacement la linewidth pour tous les handles. [4, 3] spécifie la largeur pour chaque ligne, dans l’ordre d’apparition.

Foire aux questions

Q : Que se passe-t-il si j’ai plus de deux lignes ?

R : Les deux méthodes s’adaptent facilement. Pour set_linewidth(), étendre l’indexation. Pour setp(), assurez-vous que la liste linewidth correspond au nombre de handles de légende.

Q : Puis-je modifier d’autres propriétés de la légende ?

R : Oui, les deux méthodes modifient les propriétés telles que la couleur, le style de ligne et le marqueur. Consultez la documentation Matplotlib.

Q : Quelle méthode dois-je choisir ?

R : set_linewidth() offre un contrôle granulaire pour les lignes individuelles. setp() est plus concis pour modifier la même propriété sur toutes les lignes. Choisissez en fonction de vos besoins et de votre style de codage.

Cet article fournit deux approches efficaces pour améliorer la clarté et l’impact visuel de la légende Matplotlib. Reportez-vous à la documentation Matplotlib pour une personnalisation avancée.

Laisser un commentaire

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