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()
- Utiliser
matplotlib.pyplot.setp()
pour une modification concise - Foire aux questions
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.