Comment créer une légende manuelle dans Matplotlib (avec exemple)
Vous pouvez utiliser les fonctions des sous-modules matplotlib.lines et matplotlib.patches pour créer une légende manuelle dans un tracé matplotlib.
L’exemple suivant montre comment procéder.
Exemple : créer une légende manuelle dans Matplotlib
Le code suivant montre comment créer un nuage de points dans matplotlib avec une légende par défaut :
import matplotlib.pyplot as plt
#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]
#create scatter plot of x vs. y
plt.scatter(x, y, label='Original Data', color='steelblue')
#add legend
plt.legend()
#display plot
plt.show()
Pour créer une légende manuelle avec des lignes et des carrés personnalisés, nous devons importer les sous-modules matplotlib.lines et matplotlib.patches .
Le code suivant montre comment utiliser ces sous-modules pour créer une légende manuelle :
import matplotlib.pyplot as plt
from matplotlib.lines import Line2D
import matplotlib.patches as mpatches
#define data to plot
x = [1, 2, 3, 4, 5, 6, 7]
y = [2, 3, 5, 8, 12, 18, 27]
#create scatter plot of x vs. y
plt.scatter(x, y, label='Original Data', color='steelblue')
#define handles and labels that will get added to legend
handles, labels = plt.gca().get_legend_handles_labels()
#define patches and lines to add to legend
patch1 = mpatches.Patch(color='orange', label='First Manual Patch')
patch2 = mpatches.Patch(color='orange', label='First Manual Patch')
line1 = Line2D([0], [0], label='First Manual Line', color='purple')
line2 = Line2D([0], [0], label='Second Manual Line', color='red')
#add handles
handles.extend([patch1, line1, line2])
#add legend
plt.legend(handles=handles)
#display plot
plt.show()
Notez que cette légende inclut l’étiquette des données d’origine, mais également les étiquettes et les formes des éléments que nous avons ajoutés manuellement.
Pour modifier les étiquettes ou les couleurs de l’un des éléments, modifiez simplement les valeurs des arguments d’étiquette et de couleur dans le morceau de code précédent.
Remarque : Référez-vous à ce tutoriel pour savoir comment changer la position de la légende dans le tracé.
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans Matplotlib :
Comment augmenter la taille du tracé dans Matplotlib
Comment ajuster la position du titre dans Matplotlib
Comment définir les plages d’axes dans Matplotlib