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:
FigureCanvasBaseDie 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:
- figure
Figure Eine High-Level-Figure-Instanz
- figure
- 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.savefigundFigureCanvasBase.print_figureaufgerufen, 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 mussprint_foodiese Einstellungen nicht behandeln.
- matplotlib.backends.backend_template.FigureManager[source]#
alias von
FigureManagerTemplate
- class matplotlib.backends.backend_template.FigureManagerTemplate(canvas, num)[source]#
Bases:
FigureManagerBaseHilfsklasse 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
FigureManagerBaseeine Liste der Methoden, die überschrieben werden können/sollten.
- class matplotlib.backends.backend_template.GraphicsContextTemplate[source]#
Bases:
GraphicsContextBaseDer 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:
RendererBaseDer 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.RendererBasefür Dokumentation der Methoden an.- draw_image(gc, x, y, im)[source]#
Zeichnet ein RGBA-Bild.
- Parameter:
- gc
GraphicsContextBase 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.
- transform
Affine2DBase Nur wenn das konkrete Backend so geschrieben ist, dass
option_scale_imageTruezurückgibt, *kann* eine affine Transformation (d.h. eineAffine2DBase) andraw_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).
- gc
- 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:
- gc
GraphicsContextBase Der Grafikkontext.
- xfloat
Die x-Koordinate des Textes in Anzeigekoordinaten.
- yfloat
Die y-Koordinate der Textbasislinie in Anzeigekoordinaten.
- sstr
Der Textstring.
- prop
FontProperties Die Schrifteigenschaften.
- anglefloat
Der Rotationswinkel in Grad gegen den Uhrzeigersinn.
- ismathbool oder "TeX"
Wenn True, verwende den mathtext-Parser.
- mtext
Text Das ursprüngliche Textobjekt, das gerendert werden soll.
- gc
Anmerkungen
Hinweise für Backend-Implementierer
RendererBase.draw_textunterstü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 vondraw_texbereitgestellt.
- 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
FontPropertiesprop zurück.Leerzeichen am Anfang und Ende von s sind in der gemeldeten Breite enthalten.
- new_gc()[source]#
Gibt eine Instanz eines
GraphicsContextBasezurü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