matplotlib.layout_engine#
Klassen zum Anordnen von Elementen in einer Figure.
Figuren haben eine layout_engine Eigenschaft, die eine Unterklasse von LayoutEngine enthält, die hier definiert ist (oder *None* für keine Layouts). Zum Zeichenzeitpunkt wird figure.get_layout_engine().execute() aufgerufen, dessen Ziel es normalerweise ist, Axes auf der Figur neu anzuordnen, um ein ansprechendes Layout zu erzeugen. Dies ist wie ein draw Callback, jedoch mit zwei Unterschieden. Erstens, beim Drucken deaktivieren wir die Layout-Engine für den endgültigen Zeichenvorgang. Zweitens ist es nützlich, die Layout-Engine während der Erstellung der Figur zu kennen. Insbesondere werden Colorbars aus historischen Gründen mit unterschiedlichen Layout-Engines unterschiedlich erstellt.
Matplotlib hat zwei integrierte Layout-Engines
TightLayoutEnginewar die erste Layout-Engine, die zu Matplotlib hinzugefügt wurde. Siehe auch Anleitung zu Tight Layout.ConstrainedLayoutEngineist moderner und liefert im Allgemeinen bessere Ergebnisse. Siehe auch Anleitung zu Constrained Layout.
Drittanbieter können ihre eigene Layout-Engine erstellen, indem sie von LayoutEngine ableiten.
- class matplotlib.layout_engine.ConstrainedLayoutEngine(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=(0, 0, 1, 1), compress=False, **kwargs)[Quelle]#
Implementiert das Geometriemanagement von
constrained_layout. Siehe Anleitung zu Constrained Layout für Details.Initialisiert die Einstellungen für
constrained_layout.- Parameter:
- h_pad, w_padfloat
Abstand um die Axes-Elemente in Zoll. Standardmäßig
rcParams["figure.constrained_layout.h_pad"](Standard:0.04167) undrcParams["figure.constrained_layout.w_pad"](Standard:0.04167).- hspace, wspacefloat
Anteil der Figur, der für den Abstand zwischen den Axes vorgesehen ist. Diese werden gleichmäßig zwischen den Lücken zwischen den Axes verteilt. Ein Wert von 0,2 für ein Layout mit drei Spalten hätte einen Abstand von 0,1 der Figurenbreite zwischen jeder Spalte. Wenn h/wspace < h/w_pad, dann werden die Pads verwendet. Standardmäßig
rcParams["figure.constrained_layout.hspace"](Standard:0.02) undrcParams["figure.constrained_layout.wspace"](Standard:0.02).- recttuple aus 4 floats
Rechteck in Figure-Koordinaten, in dem das Constrained Layout ausgeführt wird (links, unten, Breite, Höhe), jeweils von 0-1.
- compressbool
Ob die Axes verschoben werden sollen, damit der Leerraum dazwischen entfernt wird. Dies ist nützlich für einfache Gitter von Axes mit festem Seitenverhältnis (z. B. ein Gitter von Bildern). Siehe Gitter von Axes mit festem Seitenverhältnis: "komprimiertes" Layout.
- property adjust_compatible#
Gibt einen booleschen Wert zurück, ob die Layout-Engine mit
subplots_adjustkompatibel ist.
- property colorbar_gridspec#
Gibt einen booleschen Wert zurück, ob die Layout-Engine Colorbars mithilfe eines Gridspec erstellt.
- execute(fig)[Quelle]#
Führt constrained_layout aus und verschiebt und verkleinert Axes entsprechend.
- Parameter:
- fig
Figure, auf der das Layout ausgeführt werden soll.
- fig
- set(*, h_pad=None, w_pad=None, hspace=None, wspace=None, rect=None)[Quelle]#
Legt die Pads für constrained_layout fest.
- Parameter:
- h_pad, w_padfloat
Abstand um die Axes-Elemente in Zoll. Standardmäßig
rcParams["figure.constrained_layout.h_pad"](Standard:0.04167) undrcParams["figure.constrained_layout.w_pad"](Standard:0.04167).- hspace, wspacefloat
Anteil der Figur, der für den Abstand zwischen den Axes vorgesehen ist. Diese werden gleichmäßig zwischen den Lücken zwischen den Axes verteilt. Ein Wert von 0,2 für ein Layout mit drei Spalten hätte einen Abstand von 0,1 der Figurenbreite zwischen jeder Spalte. Wenn h/wspace < h/w_pad, dann werden die Pads verwendet. Standardmäßig
rcParams["figure.constrained_layout.hspace"](Standard:0.02) undrcParams["figure.constrained_layout.wspace"](Standard:0.02).- recttuple aus 4 floats
Rechteck in Figure-Koordinaten, in dem das Constrained Layout ausgeführt wird (links, unten, Breite, Höhe), jeweils von 0-1.
- class matplotlib.layout_engine.LayoutEngine(**kwargs)[Quelle]#
Basisklasse für Matplotlib Layout-Engines.
Eine Layout-Engine kann der Figur bei der Instanziierung oder jederzeit mit
set_layout_engineübergeben werden. Sobald sie an eine Figur angehängt ist, wird die Funktionexecuteder Layout-Engine zur Zeichenzeit vondrawaufgerufen, was einen speziellen Hook zur Zeichenzeit bietet.Hinweis
Beachten Sie jedoch, dass Layout-Engines die Erstellung von Colorbars beeinflussen, daher sollte
set_layout_engineaufgerufen werden, bevor Colorbars erstellt werden.Derzeit gibt es zwei Eigenschaften von
LayoutEngine-Klassen, die bei der Manipulation der Figur abgefragt werdenengine.colorbar_gridspecteiltFigure.colorbarmit, ob dieAxes mit der Gridspec-Methode erstellt werden sollen (siehe
colorbar.make_axes_gridspec) oder nicht (siehecolorbar.make_axes);
engine.adjust_compatibleverhindert, dassFigure.subplots_adjustausgeführt wird, wenn es nicht mit der Layout-Engine kompatibel ist.
Implementierung einer benutzerdefinierten
LayoutEngineüberschreiben Sie
_adjust_compatibleund_colorbar_gridspecüberschreiben Sie
LayoutEngine.set, um self._params zu aktualisierenüberschreiben Sie
LayoutEngine.executemit Ihrer Implementierung
- property adjust_compatible#
Gibt einen booleschen Wert zurück, ob die Layout-Engine mit
subplots_adjustkompatibel ist.
- property colorbar_gridspec#
Gibt einen booleschen Wert zurück, ob die Layout-Engine Colorbars mithilfe eines Gridspec erstellt.
- class matplotlib.layout_engine.PlaceHolderLayoutEngine(adjust_compatible, colorbar_gridspec, **kwargs)[Quelle]#
Diese Layout-Engine passt das Figurenlayout überhaupt nicht an.
Der Zweck dieser
LayoutEngineist es, als Platzhalter zu fungieren, wenn der Benutzer eine Layout-Engine entfernt, um sicherzustellen, dass später keine inkompatibleLayoutEnginegesetzt werden kann.- Parameter:
- adjust_compatible, colorbar_gridspecbool
Erlaubt der PlaceHolderLayoutEngine, das Verhalten jeder ersetzten Layout-Engine zu spiegeln.
- property adjust_compatible#
Gibt einen booleschen Wert zurück, ob die Layout-Engine mit
subplots_adjustkompatibel ist.
- property colorbar_gridspec#
Gibt einen booleschen Wert zurück, ob die Layout-Engine Colorbars mithilfe eines Gridspec erstellt.
- class matplotlib.layout_engine.TightLayoutEngine(*, pad=1.08, h_pad=None, w_pad=None, rect=(0, 0, 1, 1), **kwargs)[Quelle]#
Implementiert das Geometriemanagement von
tight_layout. Siehe Anleitung zu Tight Layout für Details.Initialisiert die tight_layout-Engine.
- Parameter:
- padfloat, Standard: 1.08
Abstand zwischen dem Rand der Abbildung und den Rändern der Subplots, als Bruchteil der Schriftgröße.
- h_pad, w_padfloat
Abstand (Höhe/Breite) zwischen den Rändern benachbarter Subplots. Standardwert ist pad.
- recttuple (links, unten, rechts, oben), Standard: (0, 0, 1, 1).
Rechteck in normalisierten Figure-Koordinaten, in das die Subplots (einschließlich Beschriftungen) passen.
- property adjust_compatible#
Gibt einen booleschen Wert zurück, ob die Layout-Engine mit
subplots_adjustkompatibel ist.
- property colorbar_gridspec#
Gibt einen booleschen Wert zurück, ob die Layout-Engine Colorbars mithilfe eines Gridspec erstellt.
- execute(fig)[Quelle]#
Führt tight_layout aus.
Dies legt die Subplot-Parameter fest, basierend auf dem Padding, das es den Achsenbeschriftungen erlaubt, nicht von anderen Beschriftungen und Achsen verdeckt zu werden.
- Parameter:
- fig
Figure, auf der das Layout ausgeführt werden soll.
- fig
Siehe auch
- set(*, pad=None, w_pad=None, h_pad=None, rect=None)[Quelle]#
Legt die Pads für tight_layout fest.
- Parameter:
- padfloat
Abstand zwischen dem Rand der Abbildung und den Rändern der Subplots, als Bruchteil der Schriftgröße.
- w_pad, h_padfloat
Padding (Breite/Höhe) zwischen den Rändern benachbarter Subplots. Standardmäßig pad.
- recttuple (links, unten, rechts, oben)
Rechteck in normalisierten Figure-Koordinaten, in das die Subplots (einschließlich Beschriftungen) passen.