Wie man die Legendenposition in Diagrammkoordinaten in Matplotlib angibt
Wir können die Position einer Legende in einem Diagramm angeben, indem wir den Wert des loc
-Parameters setzen.
Beispiele: Position der Legende in einem Diagramm angeben Koordinaten 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()
Ausgabe:
Hier haben wir eine Figur mit zwei Nebenhandlungen. In der obersten Nebenhandlung ist loc
auf best
gesetzt; dies setzt die Legende an die beste Stelle der Figur, wo wir keinen Inhalt haben.
Ähnlich verhält es sich in der zweiten Nebenhandlung unten: Die Legende wird an der unteren linken
Position des Begrenzungsrahmens platziert, so dass sie die gesamten Achsen abdeckt. Die Bounding Box wird durch den Parameter bbox_to_anchor
spezifiziert, dessen Standardwert (0,0,1,1)
ist.
Der Parameter loc
kann einen der folgenden Werte annehmen:
best |
upper right |
upper left |
lower left |
lower right |
right |
center left |
center right |
lower center |
upper center |
center |
Diese Positionen repräsentieren die Position der Legende in Bezug auf die Bounding Box, die durch den Parameter bbox_to_anchor
angegeben wird.
In ähnlicher Weise können wir die Legende an einer beliebigen Position in der Abbildung platzieren, indem wir den Wert des Parameters bbox_to_anchor
ändern. Der Parameter bbox_to_anchor
nimmt ein Tupel, das die Koordinate darstellt, an der die durch den Parameter loc
spezifizierte Ecke plaziert wird.
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()
Ausgabe:
In der Untergraphik oben haben wir die bbox_to_anchor
auf (0.9,0.75)
gesetzt, was durch den roten Punkt auf der Untergraphik markiert ist. Der Wert des loc
-Parameters "upper left"
stellt die obere linke
Ecke der Legende dar, die durch den roten Punkt auf der Unterdarstellung markiert ist.
Die untere Nebenhandlung, die bbox_to_anchor
, wird auf (0.6,0.4)
gesetzt, markiert durch den roten Punkt auf den unteren Achsen der Abbildung. Der Wert von loc
wird auf "center right"
gesetzt; daher hat die Legende der unteren Achsen ihre center right
Ecke am roten Punkt.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInVerwandter Artikel - Matplotlib Legend
- Wie man Legenden außerhalb des Grundstücks in Matplotlib platziert
- Wie man die Schriftgröße der Legende in Matplotlib ändert
- Wie man eine einzige Legende für alle Teilflächen in Matplotlib erstellt
- Wie man die Linienbreite von Linien in Matplotlib Legend ändert
- Wie man die Legende in Matplotlib entfernt
- Titel der Matplotlib-Legende