Posiziona la legenda all'esterno del grafico in Matplotlib
-
bbox_to_anchor
Esempio -
bbox_extra_artists
ebbox_inches
per impedire che il riquadro della legenda venga ritagliato
La legenda potrebbe essere posizionata fuori dal grafico in Matplotlib usando bbox_to_anchor
. bbox
significa bounding box
che contiene la leggenda. bbox_to_anchor
specifica la posizione della casella della legenda.
plt.legend(bbox_to_anchor=(1.05, 1))
Posiziona la legenda nella posizione (1.05, 1)
nelle coordinate degli assi. (0, 0)
è l’angolo inferiore sinistro e (1.0, 1.0)
è l’angolo superiore destro delle coordinate degli assi.
La dimensione e la posizione effettive del riquadro di delimitazione della legenda sono definite con il parametro a 4 tuple di bbox_to_anchor
e loc
in plt.legend
.
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
width
e height
sono la larghezza e l’altezza del riquadro della legenda, e (x0, y0)
è la coordinata della loc
del riquadro di delimitazione.
Il valore di loc
potrebbe essere un numero o una stringa che ha la relazione come sotto,
Loc Number | 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")
Il codice sopra indica che la casella della legenda è posizionata alle coordinate degli assi (1.05, 1.0)
che ha la larghezza di 0.3
e l’altezza di 0.2
, dove (1.05, 1.0)
è la coordinata della parte superiore angolo sinistro del riquadro di delimitazione della legenda.
bbox_to_anchor
Esempio
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()
rende le sottotrame ben adattate alla figura.
La casella della legenda verrebbe tagliata se tight_layout()
non viene chiamato.
bbox_extra_artists
e bbox_inches
per impedire che il riquadro della legenda venga ritagliato
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
specifica l’lista di Artist
che sarà preso in considerazione quando calcola il tight bbox.
Se bbox_inches
è impostato su tight
, verrà individuato il bbox tight della figura.
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