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

Ajouter un commentaire

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