HOWTO · Matplotlib
Wie man die Legendenposition in Diagrammkoordinaten in Matplotlib angibt
Dieser Artikel zeigt Ihnen, wie Sie die Position der Legende in einem Diagramm in Matplotlib festlegen können.
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.