matplotlib.pyplot.figlegend#
- matplotlib.pyplot.figlegend(*args, **kwargs)[Quelle]#
Platziert eine Legende in der Abbildung.
Aufrufsignaturen
figlegend() figlegend(handles, labels) figlegend(handles=handles) figlegend(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.plt.plot([1, 2, 3], label='Inline label') plt.figlegend()
oder
line, = plt.plot([1, 2, 3]) line.set_label('Label via method') plt.figlegend()
Bestimmte Linien können von der automatischen Auswahl von Legendenelementen ausgeschlossen werden, indem ein Label definiert wird, das mit einem Unterstrich beginnt. Dies ist standardmäßig für alle Künstler der Fall. Daher führt der Aufruf von
Figure.legendohne Argumente und ohne manuelles Setzen der Labels dazu, 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
plt.figlegend([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') plt.figlegend(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') plt.figlegend(['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.
- handlesListe von
- Gibt zurück:
- 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_anchor
BboxBase, 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 vonAxes.legendaufgerufen) oderfigure.bbox(wennfigure.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
legendaufgerufen wird.Wenn ein 4-Tupel oder ein
BboxBasegegeben 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 platzierenloc='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
FontPropertiesoder dict Die Schrifteigenschaften der Legende. Wenn None (Standard), werden die aktuellen
matplotlib.rcParamsverwendet.- 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 SiercParams["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
FancyBboxPatchaktiviert 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 überrcParams["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*
Noneist, wird der Standardwert ignoriert.- facecolor"inherit" oder Farbe, Standard:
rcParams["legend.facecolor"](Standard:'inherit') Die Hintergrundfarbe der Legende. Wenn
"inherit", verwenden SiercParams["axes.facecolor"](Standard:'white').- edgecolor"inherit" oder Farbe, Standard:
rcParams["legend.edgecolor"](Standard:'0.8') Die Kantenfarbe des Legenden-Hintergrund-Patches. Wenn
"inherit", verwenden SiercParams["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 dietransAxes-Transformation der Achse verwendet.- titlestr oder None
Der Titel der Legende. Standard ist kein Titel (
None).- title_fontpropertiesNone oder
FontPropertiesoder 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
Anmerkungen
Einige Künstler werden von dieser Funktion nicht unterstützt. Details finden Sie im Legenden-Leitfaden.