Comment spécifier la position de la légende dans les coordonnées du graphique dans Matplotlib

Nous pouvons spécifier la position d’une légende dans un graphe en fixant la valeur du paramètre loc
.
Exemples : Spécifier la position de la légende dans les coordonnées d’un graphe Matplotlib
import matplotlib.pyplot as plt
x = [1, 2, 3]
y1 = [0.5 * i + 1 for i in x]
y2 = [2 * i + 1 for i in x]
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1, "b-", label="0.5x+1")
ax[0].plot(x, y2, "g-", label="2x+1")
ax[0].legend(loc="best")
ax[1].plot(x, y1, "b-", label="0.5x+1")
ax[1].plot(x, y2, "g-", label="2x+1")
ax[1].legend(loc="lower left")
plt.tight_layout()
plt.show()
Production:
Ici, nous avons un chiffre avec deux sous-intrigues. La sous-parcelle supérieure a un loc
réglé sur best
; cela place la légende dans la meilleure position de la figure, là où nous n’avons pas de contenu.
Une chose similaire se produit dans la deuxième sous-placette du bas : la légende est placée à la position inférieure gauche de la boîte de délimitation, couvrant les axes entiers. La boîte englobante est spécifiée par le paramètre bbox_to_anchor
, dont la valeur par défaut est (0,0,1,1)
.
Le paramètre loc
peut prendre l’une des valeurs suivantes :
best |
upper right |
upper left |
lower left |
lower right |
right |
center left |
center right |
lower center |
upper center |
center |
Ces positions représentent la position de la légende, par rapport à la boîte englobante spécifiée par le paramètre bbox_to_anchor
.
De même, nous pouvons placer la légende à n’importe quelle position dans la figure en changeant la valeur du paramètre bbox_to_anchor
. Le paramètre bbox_to_anchor
prend un tuple, représentant la coordonnée, où le coin spécifié par le paramètre loc
sera placé.
import matplotlib.pyplot as plt
x = [1, 2, 3]
y1 = [0.5 * i + 1 for i in x]
y2 = [2 * i + 1 for i in x]
fig, ax = plt.subplots(2, 1)
ax[0].plot(x, y1, "b-", label="Plot-1")
ax[0].plot(x, y2, "g-", label="Plot-2")
ax[0].legend(loc="upper left", bbox_to_anchor=(0.9, 0.75))
ax[0].scatter((0.9), (0.75), s=70, c="red", transform=ax[0].transAxes)
ax[1].plot(x, y1, "b-", label="Plot-1")
ax[1].plot(x, y2, "g-", label="Plot-2")
ax[1].legend(loc="center right", bbox_to_anchor=(0.6, 0.4))
ax[1].scatter((0.6), (0.4), s=70, c="red", transform=ax[1].transAxes)
plt.tight_layout()
plt.show()
Production:
Dans la sous-parcelle du haut, nous avons fixé la bbox_to_anchor
à (0.9,0.75)
, qui est marquée par le point rouge sur la sous-parcelle. La valeur du paramètre loc
"upper left"
représente le coin supérieur gauche de la légende, qui est placé au niveau du point rouge.
La sous-placette du bas, la bbox_to_anchor
est fixée à (0.6,0.4)
, marquée par le point rouge sur les axes inférieurs de la figure. La valeur de loc
est fixée à "center right"
; ainsi, la légende des axes inférieurs a son coin centre droit au niveau du point rouge.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Matplotlib Legend
- Comment placer la légende en dehors du terrain dans Matplotlib
- Comment modifier la taille de la police de la légende dans Matplotlib
- Comment créer une légende unique pour toutes les sous-parcelles dans Matplotlib
- Comment définir la largeur de ligne des lignes dans la légende Matplotlib
- Comment supprimer la légende dans Matplotlib
- Titre de la légende Matplotlib