Wie man Legenden außerhalb des Grundstücks in Matplotlib platziert
-
bbox_to_anchor
Beispiel -
bbox_extra_artists
undbbox_inches
, um zu verhindern, dass der Legendenkasten abgeschnitten wird
Die Legende kann in der Matplotlib mit Hilfe von bbox_to_anchor
außerhalb der Handlung platziert werden. bbox
bedeutet bounding box
, die die Legende aufnimmt.
plt.legend(bbox_to_anchor=(1.05, 1))
Sie platziert die Legende an der Position (1.05, 1)
in der Achsenkoordinate. (0, 0)
ist die linke untere Ecke, und (1.0, 1.0)
ist die rechte obere Ecke der Achsenkoordinate.
Die tatsächliche Größe und Position der Bounding Box der Legende wird mit dem 4-Tupel-Parameter bbox_to_anchor
und loc
in der plt.legend
definiert.
plt.legend(bbox_to_anchor=(x0, y0, width, height), loc=)
width
und height
sind die Breite und die Höhe des Legendenkastens, und (x0, y0)
ist die Koordinate des loc
des Begrenzungskastens.
Der Wert von loc
könnte eine Zahl oder eine Zeichenkette sein, die die folgende Beziehung hat
Loc-Nummer | Loc-String |
---|---|
0 | beste |
1 | oben rechts |
2 | obere linke Seite |
3 | unten links |
4 | unten rechts |
5 | right |
6 | Mitte links |
7 | Mitte rechts |
8 | unteres Zentrum |
9 | obere Mitte |
10 | Zentrum |
plt.legend(bbox_to_anchor=(1.05, 1.0, 0.3, 0.2), loc="upper left")
Der obige Code bedeutet, dass der Legendenkasten an der Achsenkoordinate (1.05, 1.0)
positioniert ist, die die Breite von 0.3
und die Höhe von 0.2
hat, wobei (1.05, 1.0)
die Koordinate der linken oberen Ecke des Legendenbegrenzungsrahmens ist.
bbox_to_anchor
Beispiel
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()
Mit plt.tight_layout()
passen die Subplots sehr gut in die Abbildung.
Der Legendenrahmen würde beschnitten, wenn tight_layout()
nicht aufgerufen wird.
bbox_extra_artists
und bbox_inches
, um zu verhindern, dass der Legendenkasten abgeschnitten wird
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
gibt die Liste der Artist
an, die bei der Berechnung der engen bbox berücksichtigt wird.
Wenn die bbox_inches
auf tight
gesetzt ist, wird sie die enge bbox der Figur berechnen.
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