Comment changer la position d’une légende dans Matplotlib
Pour changer la position d’une légende dans Matplotlib, vous pouvez utiliser la fonction plt.legend() .
Par exemple, vous pouvez utiliser la syntaxe suivante pour placer la légende dans le coin supérieur gauche du tracé :
plt.legend(loc='upper left')
L’emplacement par défaut est « le meilleur » – c’est là que Matplotlib trouve automatiquement un emplacement pour la légende en fonction de l’endroit où il évite de couvrir des points de données.
Toutefois, vous pouvez spécifier l’un des emplacements de légende suivants :
- En haut à droite
- en haut à gauche
- en bas à gauche
- en bas à droite
- droite
- centre gauche
- centre droit
- en bas au centre
- en haut au centre
- centre
Vous pouvez également utiliser l’argument bbox_to_anchor() pour placer la légende en dehors du tracé. Par exemple, vous pouvez utiliser la syntaxe suivante pour placer la légende dans le coin supérieur droit en dehors du tracé :
plt.legend(bbox_to_anchor=(1.05, 1), loc='upper left', borderaxespad=0)
Les exemples suivants montrent comment utiliser chacune de ces méthodes dans la pratique.
Exemple 1 : modifier la position de la légende à l’intérieur du tracé Matplotlib
Le code suivant montre comment placer la légende dans la partie centrale droite d’un tracé linéaire Matplotlib :
import pandas as pd import matplotlib.pyplot as plt #create data df = pd.DataFrame({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt.plot(df['points'], label='Points', color='green') plt.plot(df['assists'], label='Assists', color='steelblue') #place legend in center right of plot plt.legend(loc='center right', title='Metric')
Et le code suivant montre comment placer la légende dans la partie supérieure gauche d’un tracé Matplotlib :
import pandas as pd import matplotlib.pyplot as plt #create data df = pd.DataFrame({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt.plot(df['points'], label='Points', color='green') plt.plot(df['assists'], label='Assists', color='steelblue') #place legend in center right of plot plt.legend(loc='upper left', title='Metric')
Exemple 2 : modifier la position de la légende en dehors du tracé Matplotlib
Pour placer la légende en dehors d’un tracé Matplotlib, nous pouvons utiliser l’argument bbox_to_anchor() .
Par exemple, voici comment placer la légende en dehors du coin supérieur droit du tracé :
import pandas as pd import matplotlib.pyplot as plt #create data df = pd.DataFrame({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt.plot(df['points'], label='Points', color='green') plt.plot(df['assists'], label='Assists', color='steelblue') #place legend in center right of plot plt.legend(bbox_to_anchor=(1.02, 1), loc='upper left', borderaxespad=0)
Et voici comment placer la légende en dehors du coin inférieur droit du tracé :
import pandas as pd import matplotlib.pyplot as plt #create data df = pd.DataFrame({'points': [11, 17, 16, 18, 22, 25, 26, 24, 29], 'assists': [5, 7, 7, 9, 12, 9, 9, 4, 8]}) #add lines to plot plt.plot(df['points'], label='Points', color='green') plt.plot(df['assists'], label='Assists', color='steelblue') #place legend in center right of plot plt.legend(bbox_to_anchor=(1.02, 0.1), loc='upper left', borderaxespad=0)
Reportez-vous à la documentation matplotlib pour une explication détaillée de l’argument bbox_to_anchor() .
Ressources additionnelles
Les didacticiels suivants expliquent comment effectuer d’autres opérations courantes dans Matplotlib :
Comment changer la taille de la police de la légende dans Matplotlib
Comment ajouter un titre à la légende dans Matplotlib
Comment ajuster la position du titre dans Matplotlib
Comment ajuster la position de l’étiquette de l’axe dans Matplotlib