matplotlib.backends.backend_template#

Ein voll funktionsfähiges, nicht-zeichnendes Backend, das als Vorlage für Backend-Entwickler dient. Es ist voll funktionsfähig in dem Sinne, dass Sie es als Backend auswählen können, z.B. mit

import matplotlib
matplotlib.use("template")

und Ihr Programm wird (sollte!) fehlerfrei laufen, obwohl keine Ausgabe erzeugt wird. Dies bietet einen Ausgangspunkt für Backend-Entwickler; Sie können selektiv Zeichenmethoden implementieren (draw_path, draw_image usw.) und langsam sehen, wie Ihre Abbildung zum Leben erweckt wird, anstatt eine vollständige Implementierung haben zu müssen, bevor Sie Ergebnisse erzielen.

Kopieren Sie diese Datei in ein Verzeichnis außerhalb des Matplotlib-Quellbaums, irgendwo, von wo aus Python sie importieren kann (indem Sie das Verzeichnis zu Ihrem sys.path hinzufügen oder es als normales Python-Paket verpacken); wenn das Backend als import my.backend importierbar ist, können Sie es dann mit

import matplotlib
matplotlib.use("module://my.backend")

Wenn Ihr Backend die Unterstützung für das Speichern von Abbildungen implementiert (d.h. eine print_xyz Methode hat), können Sie es als Standard-Handler für einen bestimmten Dateityp registrieren

from matplotlib.backend_bases import register_backend
register_backend('xyz', 'my_backend', 'XYZ File Format')
...
plt.savefig("figure.xyz")
matplotlib.backends.backend_template.FigureCanvas[source]#

alias von FigureCanvasTemplate

class matplotlib.backends.backend_template.FigureCanvasTemplate(figure=None)[source]#

Bases: FigureCanvasBase

Die Zeichenfläche, auf die die Abbildung gerendert wird. Ruft die draw- und printfig-Methoden auf, erstellt die Renderer usw.

Hinweis: GUI-Vorlagen möchten Ereignisse für Maustastenanschläge, Mausbewegungen und Tastatureingaben mit Funktionen verbinden, die die Basisklassenmethoden button_press_event, button_release_event, motion_notify_event, key_press_event und key_release_event aufrufen. Sehen Sie sich die Implementierungen der interaktiven Backends als Beispiele an.

Attribute:
figureFigure

Eine High-Level-Figure-Instanz

draw()[source]#

Zeichnet die Abbildung mit dem Renderer.

Es ist wichtig, dass diese Methode den Künstlerbaum tatsächlich durchläuft, auch wenn keine Ausgabe erzeugt wird, da dies verzögerte Arbeiten auslöst (wie das Berechnen von Limits, Auto-Limits und Tick-Werten), auf die Benutzer möglicherweise vor dem Speichern auf der Festplatte zugreifen möchten.

filetypes = {'eps': 'Encapsulated Postscript', 'foo': 'My magic Foo format', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': 'Portable Document Format', 'pgf': 'PGF code for LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Raw RGBA bitmap', 'rgba': 'Raw RGBA bitmap', 'svg': 'Scalable Vector Graphics', 'svgz': 'Scalable Vector Graphics', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format', 'webp': 'WebP Image Format'}#
get_default_filetype()[source]#

Gibt das Standardformat für die Speicherabbildung zurück, wie in rcParams["savefig.format"] (Standard: 'png') angegeben.

Der zurückgegebene String enthält keinen Punkt. Diese Methode wird in Backends überschrieben, die nur einen Dateityp unterstützen.

manager_class[source]#

alias von FigureManagerTemplate

print_foo(filename, **kwargs)[source]#

Schreibt das Format foo aus.

Diese Methode wird normalerweise über Figure.savefig und FigureCanvasBase.print_figure aufgerufen, die sich um die Einstellung von Figure Facecolor, Edgecolor und DPI auf die gewünschten Ausgabewerte kümmern und sie auf die ursprünglichen Werte zurücksetzen. Daher muss print_foo diese Einstellungen nicht behandeln.

matplotlib.backends.backend_template.FigureManager[source]#

alias von FigureManagerTemplate

class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]#

Bases: FigureManagerBase

Hilfsklasse für den Pyplot-Modus, fasst alles in einem sauberen Paket zusammen.

Für nicht-interaktive Backends ist die Basisklasse ausreichend. Für interaktive Backends finden Sie in der Dokumentation der Klasse FigureManagerBase eine Liste der Methoden, die überschrieben werden können/sollten.

class matplotlib.backends.backend_template.GraphicsContextTemplate[source]#

Bases: GraphicsContextBase

Der Grafikkontext stellt Farbe, Linienstile usw. bereit. Sehen Sie sich die Cairo- und Postscript-Backends als Beispiele für die Zuordnung von Grafikkontextattributen (Kap-Stile, Join-Stile, Linienbreiten, Farben) zu einem bestimmten Backend an. In Cairo geschieht dies durch das Umschließen eines cairo.Context-Objekts und das Weiterleiten der entsprechenden Aufrufe an dieses mit einem Wörterbuch, das Stile auf gdk-Konstanten abbildet. In Postscript wird die gesamte Arbeit vom Renderer erledigt, der Linienstile auf Postscript-Aufrufe abbildet.

Wenn es angebrachter ist, die Zuordnung auf Renderer-Ebene durchzuführen (wie im Postscript-Backend), müssen Sie keine der GC-Methoden überschreiben. Wenn es angebrachter ist, eine Instanz zu umschließen (wie im Cairo-Backend) und die Zuordnung hier durchzuführen, müssen Sie mehrere der Setter-Methoden überschreiben.

Der Basis-Grafikkontext speichert Farben als RGB-Tripel im Einheitsintervall, z.B. (0,5, 0,0, 1,0). Möglicherweise müssen Sie dies in für Ihr Backend geeignete Farben umwandeln.

class matplotlib.backends.backend_template.RendererTemplate(dpi)[source]#

Bases: RendererBase

Der Renderer behandelt Zeichen-/Rendering-Operationen.

Dies ist eine minimale "Nichts-tun"-Klasse, die verwendet werden kann, um mit dem Schreiben eines neuen Backends zu beginnen. Sehen Sie sich backend_bases.RendererBase für Dokumentation der Methoden an.

draw_image(gc, x, y, im)[source]#

Zeichnet ein RGBA-Bild.

Parameter:
gcGraphicsContextBase

Ein Grafikkontext mit Clipping-Informationen.

xfloat

Der Abstand in physikalischen Einheiten (d. h. Punkten oder Pixeln) vom linken Rand der Zeichenfläche.

yfloat

Der Abstand in physikalischen Einheiten (d. h. Punkten oder Pixeln) vom unteren Rand der Zeichenfläche.

im(N, M, 4) Array von numpy.uint8

Ein Array von RGBA-Pixeln.

transformAffine2DBase

Nur wenn das konkrete Backend so geschrieben ist, dass option_scale_image True zurückgibt, *kann* eine affine Transformation (d.h. eine Affine2DBase) an draw_image übergeben werden. Der Translationsvektor der Transformation ist in physikalischen Einheiten (d.h. Punkten oder Pixeln) angegeben. Beachten Sie, dass die Transformation *x* und *y* nicht überschreibt und *vor* dem Übersetzen des Ergebnisses um *x* und *y* angewendet werden muss (dies kann erreicht werden, indem *x* und *y* zum Translationsvektor hinzugefügt werden, der durch *transform* definiert ist).

draw_path(gc, path, transform, rgbFace=None)[source]#

Zeichnet eine Path-Instanz mit der gegebenen affinen Transformation.

draw_text(gc, x, y, s, prop, angle, ismath=False, mtext=None)[source]#

Zeichnet eine Textinstanz.

Parameter:
gcGraphicsContextBase

Der Grafikkontext.

xfloat

Die x-Koordinate des Textes in Anzeigekoordinaten.

yfloat

Die y-Koordinate der Textbasislinie in Anzeigekoordinaten.

sstr

Der Textstring.

propFontProperties

Die Schrifteigenschaften.

anglefloat

Der Rotationswinkel in Grad gegen den Uhrzeigersinn.

ismathbool oder "TeX"

Wenn True, verwende den mathtext-Parser.

mtextText

Das ursprüngliche Textobjekt, das gerendert werden soll.

Anmerkungen

Hinweise für Backend-Implementierer

RendererBase.draw_text unterstützt auch die Übergabe von "TeX" an den Parameter *ismath*, um TeX-Rendering zu verwenden, dies ist jedoch für tatsächliche Rendering-Backends nicht erforderlich, und viele integrierte Backends unterstützen dies nicht. Vielmehr wird TeX-Rendering von draw_tex bereitgestellt.

flipy()[source]#

Gibt zurück, ob die y-Werte von oben nach unten zunehmen.

Beachten Sie, dass dies nur das Zeichnen von Texten beeinflusst.

get_canvas_width_height()[source]#

Gibt die Breite und Höhe der Leinwand in Anzeigekoordinaten zurück.

get_text_width_height_descent(s, prop, ismath)[source]#

Gibt die Breite, Höhe und den Abstieg (Offset von unten zur Basislinie) in Anzeigekoordinaten des Strings s mit FontProperties prop zurück.

Leerzeichen am Anfang und Ende von s sind in der gemeldeten Breite enthalten.

new_gc()[source]#

Gibt eine Instanz eines GraphicsContextBase zurück.

points_to_pixels(points)[source]#

Konvertiert Punkte in Anzeigeeinheiten.

Sie müssen diese Funktion überschreiben (es sei denn, Ihr Backend hat keinen DPI-Wert, z. B. PostScript oder SVG). Einige Bildsysteme nehmen einen bestimmten Wert für Pixel pro Zoll an.

points to pixels = points * pixels_per_inch/72 * dpi/72
Parameter:
pointsfloat oder array-ähnlich
Gibt zurück:
Punkte, konvertiert in Pixel