Wie man Legenden außerhalb des Grundstücks in Matplotlib platziert
-
bbox_to_anchorBeispiel -
bbox_extra_artistsundbbox_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