Comment placer la légende en dehors du terrain dans Matplotlib
-
Exemple de
bbox_to_anchor
-
bbox_extra_artists
etbbox_inches
pour éviter que la boîte de légende ne soit recadrée
La légende peut être placée à l’extérieur de la parcelle dans Matplotlib en utilisant bbox_to_anchor
. La bbox
signifie boîte à bornes
qui accueille la légende.
plt.legend(bbox_to_anchor=(1.05, 1))
Elle place la légende à la position (1.05, 1)
dans les coordonnées des axes. (0, 0) est le coin inférieur gauche, et (1.0, 1.0) est le coin supérieur droit de l’axe des coordonnées.
La taille et la position réelles de la boîte de délimitation de la légende sont définies avec le paramètre à 4 tubes de bbox_to_anchor
et loc
dans la plt.legend
.
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
width et height sont la largeur et la hauteur de la boîte de légende, et (x0, y0)
est la coordonnée du loc
de la boîte de délimitation.
La valeur de “local” peut être un nombre ou une chaîne de caractères qui a la relation suivante
Numéro de localité | Loc String |
---|---|
0 | best |
1 | upper right |
2 | upper left |
3 | lower left |
4 | lower right |
5 | right |
6 | center left |
7 | center right |
8 | lower center |
9 | upper center |
10 | center |
plt.legend(bbox_to_anchor=(1.05, 1.0, 0.3, 0.2), loc="upper left")
Le code ci-dessus signifie que la boîte de légende est positionnée à la coordonnée de l’axe (1.05, 1.0)
qui a la largeur de 0.3
et la hauteur de 0.2
, où (1.05, 1.0)
est la coordonnée du coin supérieur gauche de la boîte de délimitation de la légende.
Exemple de bbox_to_anchor
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
plt.legend(bbox_to_anchor=(1.05, 1.0), loc="upper left")
plt.tight_layout()
plt.show()
plt.tight_layout()
fait que les sous-parcelles s’intègrent bien dans la figure.
La boîte de légende sera recadrée si tight_layout()
n’est pas appelée.
bbox_extra_artists
et bbox_inches
pour éviter que la boîte de légende ne soit recadrée
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 10, 100)
plt.plot(x, np.sin(x), label="sin(x)")
plt.plot(x, np.cos(x), label="cos(x)")
lg = plt.legend(bbox_to_anchor=(1.05, 1.0), loc="upper left")
plt.savefig(
"example.png", dpi=300, format="png", bbox_extra_artists=(lg,), bbox_inches="tight"
)
bbox_extra_artists
spécifie la liste des Artist
qui seront pris en considération lors du calcul de la bbox serrée.
Si la bbox_inches
est définie comme étant serrée
, elle calculera la bbox serrée de la figure.
Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn Facebook