matplotlib.figure.Figure.legend#

Figure.legend(*args, **kwargs)[Quelle]#

Platziert eine Legende in der Abbildung.

Aufrufsignaturen

legend()
legend(handles, labels)
legend(handles=handles)
legend(labels)

Die Aufrufsignaturen entsprechen den folgenden verschiedenen Möglichkeiten, diese Methode zu verwenden

1. Automatische Erkennung von Elementen für die Legende

Die Elemente, die der Legende hinzugefügt werden sollen, werden automatisch ermittelt, wenn Sie keine zusätzlichen Argumente übergeben.

In diesem Fall werden die Beschriftungen vom Künstler übernommen. Sie können sie entweder bei der Erstellung des Künstlers angeben oder durch Aufruf der Methode set_label() für den Künstler festlegen.

ax.plot([1, 2, 3], label='Inline label')
fig.legend()

oder

line, = ax.plot([1, 2, 3])
line.set_label('Label via method')
fig.legend()

Spezifische Zeilen können von der automatischen Auswahl von Legenden-Elementen ausgeschlossen werden, indem ein Label definiert wird, das mit einem Unterstrich beginnt. Dies ist der Standard für alle Künstler, sodass das Aufrufen von Figure.legend ohne Argumente und ohne manuelles Setzen der Labels dazu führt, dass keine Legende gezeichnet wird.

2. Explizites Auflisten der Künstler und Beschriftungen in der Legende

Für die vollständige Kontrolle darüber, welche Künstler einen Legendeneintrag haben, ist es möglich, ein Iterable von Legendenkünstlern gefolgt von einem Iterable von Legendenbeschriftungen zu übergeben

fig.legend([line1, line2, line3], ['label1', 'label2', 'label3'])

3. Explizites Auflisten der Künstler in der Legende

Dies ist ähnlich wie 2, aber die Beschriftungen werden aus den Label-Eigenschaften der Künstler übernommen. Beispiel

line1, = ax1.plot([1, 2, 3], label='label1')
line2, = ax2.plot([1, 2, 3], label='label2')
fig.legend(handles=[line1, line2])

4. Beschriften vorhandener Plot-Elemente

Veraltet

Diese Aufrufsignatur wird nicht empfohlen, da die Beziehung zwischen Plot-Elementen und Beschriftungen nur implizit durch ihre Reihenfolge gegeben ist und leicht durcheinander geraten kann.

Um eine Legende für alle Künstler auf allen Axes zu erstellen, rufen Sie diese Funktion mit einem Iterable von Strings auf, einem für jeden Legenden-Eintrag. Zum Beispiel

fig, (ax1, ax2) = plt.subplots(1, 2)
ax1.plot([1, 3, 5], color='blue')
ax2.plot([2, 4, 6], color='red')
fig.legend(['the blues', 'the reds'])
Parameter:
handlesListe von Artist, optional

Eine Liste von Künstlern (Linien, Patches), die der Legende hinzugefügt werden sollen. Verwenden Sie dies zusammen mit labels, wenn Sie vollständige Kontrolle darüber benötigen, was in der Legende angezeigt wird und der oben beschriebene automatische Mechanismus nicht ausreicht.

Die Länge von Handles und Labels sollte in diesem Fall gleich sein. Wenn sie nicht gleich sind, werden sie auf die kleinere Länge gekürzt.

labelsListe von str, optional

Eine Liste von Bezeichnern, die neben den Künstlern angezeigt werden sollen. Verwenden Sie dies zusammen mit handles, wenn Sie die volle Kontrolle darüber benötigen, was in der Legende angezeigt wird, und der automatische Mechanismus, der oben beschrieben wurde, nicht ausreicht.

Gibt zurück:
Legende
Andere Parameter:
locstr oder Paar von Floats, Standard: 'upper right'

Die Position der Legende.

Die Strings 'upper left', 'upper right', 'lower left', 'lower right' platzieren die Legende in der entsprechenden Ecke der Abbildung.

Die Strings 'upper center', 'lower center', 'center left', 'center right' platzieren die Legende in der Mitte des entsprechenden Rands der Abbildung.

Der String 'center' platziert die Legende in der Mitte der Abbildung.

Die Position kann auch ein 2er-Tupel sein, das die Koordinaten der unteren linken Ecke der Legende in Abbildungskoordinaten angibt (in diesem Fall wird bbox_to_anchor ignoriert).

Zur Abwärtskompatibilität kann 'center right' (aber keine andere Position) auch als 'right' geschrieben werden, und jede "Zeichenketten"-Position kann auch als numerischer Wert angegeben werden.

Positionszeichenkette

Positions-Code

'best' (nur Achsen)

0

'oben rechts'

1

'oben links'

2

'unten links'

3

'unten rechts'

4

'rechts'

5

'links mitte'

6

'rechts mitte'

7

'unten mitte'

8

'oben mitte'

9

'mitte'

10

Wenn eine Abbildung den constrained layout manager verwendet, können die String-Codes des loc-Schlüsselwortarguments durch das Präfix 'outside' ein besseres Layoutverhalten erzielen. An den Ecken gibt es Mehrdeutigkeiten, daher wird 'outside upper right' Platz über dem Rest der Achsen im Layout für die Legende schaffen, und 'outside right upper' wird Platz auf der rechten Seite des Layouts schaffen. Zusätzlich zu den oben genannten Werten für loc gibt es 'outside right upper', 'outside right lower', 'outside left upper' und 'outside left lower'. Weitere Einzelheiten finden Sie im Legend guide.

bbox_to_anchorBboxBase, 2-Tupel oder 4-Tupel von Floats

Box, die verwendet wird, um die Legende in Verbindung mit loc zu positionieren. Standardmäßig axes.bbox (wenn als Methode von Axes.legend aufgerufen) oder figure.bbox (wenn figure.legend). Dieses Argument ermöglicht eine beliebige Platzierung der Legende.

Bbox-Koordinaten werden im durch *bbox_transform* gegebenen Koordinatensystem interpretiert, wobei die Standardtransformation die Achsen- oder Figure-Koordinaten sind, je nachdem, welche legend aufgerufen wird.

Wenn ein 4-Tupel oder ein BboxBase gegeben ist, dann spezifiziert es die Bbox (x, y, width, height), in der die Legende platziert wird. Um die Legende an der besten Position im unteren rechten Quadranten der Achse (oder Figur) zu platzieren

loc='best', bbox_to_anchor=(0.5, 0., 0.5, 0.5)

Ein 2-Tupel (x, y) platziert die Ecke der Legende, die durch *loc* angegeben wird, bei x, y. Zum Beispiel, um die obere rechte Ecke der Legende in der Mitte der Achse (oder Figur) zu platzieren, können die folgenden Schlüsselwörter verwendet werden:

loc='upper right', bbox_to_anchor=(0.5, 0.5)
ncolsint, default: 1

Die Anzahl der Spalten, die die Legende hat.

Zur Abwärtskompatibilität wird auch die Schreibweise *ncol* unterstützt, diese wird jedoch nicht empfohlen. Wenn beide angegeben sind, hat *ncols* Vorrang.

propNone oder FontProperties oder dict

Die Schrifteigenschaften der Legende. Wenn None (Standard), werden die aktuellen matplotlib.rcParams verwendet.

fontsizeint oder {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}

Die Schriftgröße der Legende. Wenn der Wert numerisch ist, ist die Größe die absolute Schriftgröße in Punkten. Zeichenkettenwerte sind relativ zur aktuellen Standard-Schriftgröße. Dieses Argument wird nur verwendet, wenn *prop* nicht angegeben ist.

labelcolorstr oder Liste, Standard: rcParams["legend.labelcolor"] (Standard: 'None')

Die Farbe des Textes in der Legende. Entweder eine gültige Farbsymbolkette (z. B. 'red') oder eine Liste von Farbsymbolketten. Die *labelcolor* kann auch so eingestellt werden, dass sie mit der Farbe der Linie oder des Markers übereinstimmt, indem 'linecolor', 'markerfacecolor' (oder 'mfc') oder 'markeredgecolor' (oder 'mec') verwendet wird.

Die *labelcolor* kann global über rcParams["legend.labelcolor"] (Standard: 'None') gesetzt werden. Wenn None, verwenden Sie rcParams["text.color"] (Standard: 'black').

numpointsint, Standard: rcParams["legend.numpoints"] (Standard: 1)

Die Anzahl der Marker-Punkte in der Legende beim Erstellen eines Legenden-Eintrags für ein Line2D (Linie).

scatterpointsint, Standard: rcParams["legend.scatterpoints"] (Standard: 1)

Die Anzahl der Marker-Punkte in der Legende beim Erstellen eines Legenden-Eintrags für ein PathCollection (Streudiagramm).

scatteryoffsetsiterierbares Objekt von Floats, Standard: [0.375, 0.5, 0.3125]

Der vertikale Versatz (relativ zur Schriftgröße) für die Marker, die für einen Legenden-Eintrag eines Streudiagramms erstellt werden. 0.0 ist an der Basis des Legendentextes, und 1.0 ist an der Oberseite. Um alle Marker auf derselben Höhe zu zeichnen, setzen Sie dies auf [0.5].

markerscalefloat, Standard: rcParams["legend.markerscale"] (Standard: 1.0)

Die relative Größe von Legenden-Markern im Vergleich zu den ursprünglich gezeichneten.

markerfirstbool, Standard: True

Wenn *True*, wird der Legenden-Marker links vom Legenden-Bezeichner platziert. Wenn *False*, wird der Legenden-Marker rechts vom Legenden-Bezeichner platziert.

reversebool, Standard: False

Wenn *True*, werden die Legenden-Bezeichner in umgekehrter Reihenfolge zur Eingabe angezeigt. Wenn *False*, werden die Legenden-Bezeichner in derselben Reihenfolge wie die Eingabe angezeigt.

Hinzugefügt in Version 3.7.

frameonbool, Standard: rcParams["legend.frameon"] (Standard: True)

Gibt an, ob die Legende auf einem Patch (Rahmen) gezeichnet werden soll.

fancyboxbool, Standard: rcParams["legend.fancybox"] (Standard: True)

Gibt an, ob abgerundete Kanten um den FancyBboxPatch aktiviert werden sollen, der den Hintergrund der Legende bildet.

shadowNone, bool oder dict, Standard: rcParams["legend.shadow"] (Standard: False)

Gibt an, ob ein Schatten hinter der Legende gezeichnet werden soll. Der Schatten kann mit Patch-Schlüsselwörtern konfiguriert werden. Die Anpassung über rcParams["legend.shadow"] (Standard: False) wird derzeit nicht unterstützt.

framealphafloat, Standard: rcParams["legend.framealpha"] (Standard: 0.8)

Die Alpha-Transparenz des Legenden-Hintergrunds. Wenn *shadow* aktiviert ist und *framealpha* None ist, wird der Standardwert ignoriert.

facecolor"inherit" oder Farbe, Standard: rcParams["legend.facecolor"] (Standard: 'inherit')

Die Hintergrundfarbe der Legende. Wenn "inherit", verwenden Sie rcParams["axes.facecolor"] (Standard: 'white').

edgecolor"inherit" oder Farbe, Standard: rcParams["legend.edgecolor"] (Standard: '0.8')

Die Kantenfarbe des Legenden-Hintergrund-Patches. Wenn "inherit", verwenden Sie rcParams["axes.edgecolor"] (Standard: 'black').

mode{"expand", None}

Wenn *mode* auf "expand" gesetzt ist, wird die Legende horizontal erweitert, um den Achsenbereich (oder *bbox_to_anchor*, falls dieser die Größe der Legende bestimmt) auszufüllen.

bbox_transformNone oder Transform

Die Transformation für die Bounding Box (*bbox_to_anchor*). Für einen Wert von None (Standard) wird die transAxes-Transformation der Achse verwendet.

titlestr oder None

Der Titel der Legende. Standard ist kein Titel (None).

title_fontpropertiesNone oder FontProperties oder dict

Die Schrifteigenschaften des Legendentitels. Wenn None (Standard), wird das Argument *title_fontsize* verwendet, falls vorhanden; wenn auch *title_fontsize* None ist, wird die aktuelle rcParams["legend.title_fontsize"] (Standard: None) verwendet.

title_fontsizeint oder {'xx-small', 'x-small', 'small', 'medium', 'large', 'x-large', 'xx-large'}, Standard: rcParams["legend.title_fontsize"] (Standard: None)

Die Schriftgröße des Legendentitels. Hinweis: Dies kann nicht mit *title_fontproperties* kombiniert werden. Wenn Sie die Schriftgröße zusammen mit anderen Schrifteigenschaften festlegen möchten, verwenden Sie den Parameter *size* in *title_fontproperties*.

alignment{'center', 'left', 'right'}, Standard: 'center'

Die Ausrichtung des Legendentitels und der Box der Einträge. Die Einträge werden als einzelner Block ausgerichtet, sodass die Marker immer aufgereiht sind.

borderpadfloat, Standard: rcParams["legend.borderpad"] (Standard: 0.4)

Der Bruchteil des Leerraums innerhalb des Legendenrahmens, in Schriftgrößen-Einheiten.

labelspacingfloat, Standard: rcParams["legend.labelspacing"] (Standard: 0.5)

Der vertikale Abstand zwischen den Legenden-Einträgen, in Schriftgrößen-Einheiten.

handlelengthfloat, Standard: rcParams["legend.handlelength"] (Standard: 2.0)

Die Länge der Legenden-Handles, in Schriftgrößen-Einheiten.

handleheightfloat, Standard: rcParams["legend.handleheight"] (Standard: 0.7)

Die Höhe der Legenden-Handles, in Schriftgrößen-Einheiten.

handletextpadfloat, Standard: rcParams["legend.handletextpad"] (Standard: 0.8)

Der Abstand zwischen dem Legenden-Handle und dem Text, in Schriftgrößen-Einheiten.

borderaxespadfloat, Standard: rcParams["legend.borderaxespad"] (Standard: 0.5)

Der Abstand zwischen der Achse und dem Legenden-Rahmen, in Schriftgrößen-Einheiten.

columnspacingfloat, Standard: rcParams["legend.columnspacing"] (Standard: 2.0)

Der Abstand zwischen Spalten, in Schriftgrößen-Einheiten.

handler_mapdict oder None

Das benutzerdefinierte Wörterbuch, das Instanzen oder Typen einem Legenden-Handler zuordnet. Diese *handler_map* aktualisiert die Standard-Handler-Map unter matplotlib.legend.Legend.get_legend_handler_map.

draggablebool, Standard: False

Gibt an, ob die Legende per Maus verschoben werden kann.

Siehe auch

Axes.legend

Anmerkungen

Einige Künstler werden von dieser Funktion nicht unterstützt. Details finden Sie im Legenden-Leitfaden.

Beispiele mit matplotlib.figure.Figure.legend#

Figuren-Legenden-Demo

Figuren-Legenden-Demo

Leitfaden für eingeschränkte Layouts

Leitfaden für eingeschränkte Layouts

Legenden-Anleitung

Legenden-Anleitung