Ich versuche, das Schlüsselwort bbox_to_anchor()
in einem Matplotlib-Plot in Python zu verwenden.Matplotlib automatische Legende außerhalb Grundstück
Hier ist eine sehr einfache Handlung, die ich produziert habe:
import matplotlib.pyplot as plt
x = [1,2,3]
plt.subplot(211)
plt.plot(x, label="test1")
plt.plot([3,2,1], label="test2")
plt.legend(bbox_to_anchor=(0, -0.15, 1, 0), loc=2, ncol=2, mode="expand", borderaxespad=0)
plt.show()
Es basiert auf dem Beispiel basiert hier: http://matplotlib.org/users/legend_guide.html#plotting-guide-legend
ich automatisch versuche außerhalb des Diagramms die Legende zu platzieren bbox_to_anchor()
verwenden. In diesem Beispiel sind in bbox_to_anchor()
4 Argumente aufgelistet.
In diesem speziellen Beispiel (oben) wird die Legende unter dem Diagramm platziert, so dass die Nummer -0,15 jedes Mal manuell eingegeben werden muss, wenn ein Diagramm geändert wird (Schriftgröße, Achsentitel entfernt usw.). Ist es möglich, diese 4 Zahlen automatisch für die folgenden Szenarien zu berechnen?:
- Legende unten Grundstück
- Legende oben Grundstück
- Legende nach rechts von Grundstück
Wenn nicht, ist es möglich, gute Vermutungen über diese Zahlen, in Python zu machen?
Auch im obigen Beispiel Code habe ich die letzten 2 Zahlen in bbox_to_anchor()
auf 1 und 0 gesetzt, da ich nicht verstehe, was sie sind oder wie sie funktionieren. Was bedeuten die letzten 2 Nummern in bbox_to_anchor()
?
Danke. Müssten die Koordinaten nicht jedes Mal manuell eingestellt werden? –
Auch die Dataseries Etiketten sind sehr lang für mich. Dadurch werden sie in der Legende abgeschnitten. Gibt es eine Möglichkeit, dies zu vermeiden? –
Wenn Sie "oben links" und z. B. (1,1,25) festlegen, befindet sich die Legende außerhalb des Diagramms. Legenden sollten sowieso kurz sein – Moritz