backend_template#

Ein voll funktionsfähiges, nichts tundes Backend, das als Vorlage für Backend-Autoren gedacht ist. Es ist insofern voll funktionsfähig, als man es zB mit als Backend auswählen kann

import matplotlib
matplotlib.use("template")

und Ihr Programm wird (sollte!) ohne Fehler laufen, obwohl keine Ausgabe erzeugt wird. Dies bietet einen Ausgangspunkt für Backend-Autoren; draw_pathSie können Zeichenmethoden ( , , etc.) selektiv implementieren draw_imageund sehen, wie Ihre Figur langsam zum Leben erweckt wird, anstatt eine vollständige Implementierung durchführen zu müssen, bevor Sie Ergebnisse erzielen.

Kopieren Sie diese Datei in ein Verzeichnis außerhalb des Matplotlib-Quellbaums, irgendwo, wo Python sie importieren kann (indem Sie das Verzeichnis zu Ihrem hinzufügen sys.pathoder es als normales Python-Paket packen); Wenn das Backend importierbar ist , können Sie es dann mit auswählenimport my.backend

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

Wenn Ihr Backend Unterstützung für das Speichern von Zahlen implementiert (dh 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 [Quelle] #

Pseudonym vonFigureCanvasTemplate

Klasse matplotlib.backends.backend_template. FigureCanvasTemplate ( figure = None ) [Quelle] #

Basen:FigureCanvasBase

Die Leinwand, in die die Figur gerendert wird. Ruft die draw- und print-fig-Methoden auf, erstellt die Renderer usw.

Hinweis: GUI-Vorlagen möchten Ereignisse für Tastendrücke, Mausbewegungen und Tastendrücke mit Funktionen verbinden, die die Methoden der Basisklasse button_press_event, button_release_event, motion_notify_event, key_press_event und key_release_event aufrufen. Beispiele finden Sie in den Implementierungen der interaktiven Backends.

Attribute :
Zahlmatplotlib.figure.Figure

Eine Figure-Instanz auf hoher Ebene

zeichnen ( ) [Quelle] #

Zeichnen Sie die Figur mit dem Renderer.

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

filetypes = {'eps': 'Encapsulated Postscript', 'foo': 'Mein magisches Foo -Format', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': ' Portable Document Format', 'pgf': 'PGF- Code für LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Rohes RGBA -Bitmap', 'rgba': 'Rohes RGBA -Bitmap', 'svg': 'Skalierbare Vektorgrafiken ', 'svgz': 'Skalierbare Vektorgrafiken ', 'tif': 'Tagged Image File Format', 'tiff': 'Tagged Image File Format', 'webp': 'WebP Image Format '} #
get_default_filetype ( ) [Quelle] #

Gibt das standardmäßige savefig-Dateiformat wie in rcParams["savefig.format"](Standard: 'png') angegeben zurück.

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

manager_class [Quelle] #

Pseudonym vonFigureManagerTemplate

print_foo ( Dateiname , * args , ** kwargs ) [Quelle] #

Schreiben Sie das Format foo aus.

Diese Methode wird normalerweise über Figure.savefigund aufgerufen FigureCanvasBase.print_figure, die dafür sorgen, dass die Figur facecolor, edgecolor und dpi auf die gewünschten Ausgabewerte gesetzt und auf die ursprünglichen Werte zurückgesetzt werden. Daher print_foomuss diese Einstellungen nicht behandelt werden.

matplotlib.backends.backend_template. FigureManager [Quelle] #

Pseudonym vonFigureManagerTemplate

Klasse matplotlib.backends.backend_template. FigureManagerTemplate ( canvas , num ) [Quelle] #

Basen:FigureManagerBase

Hilfsklasse für den Pyplot-Modus, packt alles in ein ordentliches Bündel.

Für nicht interaktive Backends ist die Basisklasse ausreichend.

Klasse matplotlib.backends.backend_template. GraphicsContextTemplate [Quelle] #

Basen:GraphicsContextBase

Der Grafikkontext stellt die Farbe, Linienstile usw. bereit. Beispiele für die Zuordnung der Grafikkontextattribute (Abschlussstile, Verbindungsstile, Linienbreiten, Farben) zu einem bestimmten Backend finden Sie in den Backends cairo und postscript. In cairo geschieht dies durch Umhüllen eines cairo.Context-Objekts und Weiterleiten der entsprechenden Aufrufe mithilfe eines Wörterbuchs, das Stile auf gdk-Konstanten abbildet. In Postscript wird die gesamte Arbeit vom Renderer erledigt, der Linienstile Postscript-Aufrufen zuordnet.

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

Der Basis-GraphicsContext speichert Farben als RGB-Tupel im Einheitsintervall, z. B. (0,5, 0,0, 1,0). Möglicherweise müssen Sie dies Farben zuordnen, die für Ihr Backend geeignet sind.

Klasse matplotlib.backends.backend_template. RendererTemplate ( dpi ) [Quelle] #

Basen:RendererBase

Der Renderer handhabt Zeichen-/Rendering-Operationen.

Dies ist eine minimale Do-Nothing-Klasse, die verwendet werden kann, um mit dem Schreiben eines neuen Backends zu beginnen. Siehe backend_bases.RendererBasefür die Dokumentation der Methoden.

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

Zeichnen Sie ein RGBA-Bild.

Parameter :
ggGraphicsContextBase

Ein Grafikkontext mit Clipping-Informationen.

x Skalar

Der Abstand in physikalischen Einheiten (dh Punkte oder Pixel) von der linken Seite der Leinwand.

y Skalar

Der Abstand in physikalischen Einheiten (dh Punkte oder Pixel) von der unteren Seite der Leinwand.

im (N, M, 4) Array-ähnlich von np.uint8

Ein Array von RGBA-Pixeln.

verwandelnmatplotlib.transforms.Affine2DBase

Nur wenn das konkrete Backend so geschrieben ist, dass es option_scale_imagezurückgibt , kannTrue eine affine Transformation (dh ein Affine2DBase) an übergeben werden . Der Translationsvektor der Transformation wird in physikalischen Einheiten (dh Punkten oder Pixeln) angegeben. Beachten Sie, dass die Transformation x und y nicht überschreibt und angewendet werden muss, bevor das Ergebnis durch x und y übersetzt wird (dies kann erreicht werden, indem x und y zu dem durch transform definierten Übersetzungsvektor hinzugefügt werden ).draw_image

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

Zeichne eine PathInstanz mit der gegebenen affinen Transformation.

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

Zeichnen Sie eine Textinstanz.

Parameter :
ggGraphicsContextBase

Der grafische Kontext.

x schweben

Die x-Position des Textes in Anzeigekoordinaten.

y schweben

Die y-Position der Textgrundlinie in Anzeigekoordinaten.

s -str

Die Textzeichenfolge.

Stützematplotlib.font_manager.FontProperties

Die Schrifteigenschaften.

Winkelschwimmer _

Der Drehwinkel in Grad gegen den Uhrzeigersinn.

Textmatplotlib.text.Text

Das ursprüngliche Textobjekt, das gerendert werden soll.

Anmerkungen

Hinweis für Backend-Implementierer:

Wenn Sie versuchen festzustellen, ob Sie Ihren Begrenzungsrahmen richtig gemacht haben (was das Textlayout / die Textausrichtung ermöglicht, richtig zu funktionieren), hilft es, die Zeile in text.py zu ändern:

if 0: bbox_artist(self, renderer)

zu if 1, und dann wird der eigentliche Begrenzungsrahmen zusammen mit Ihrem Text geplottet.

flipy ( ) [Quelle] #

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

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

get_canvas_width_height ( ) [Quelle] #

Gibt die Leinwandbreite und -höhe in Anzeigekoordinaten zurück.

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

Holen Sie sich Breite, Höhe und Gefälle (Versatz von unten zur Grundlinie) der Zeichenkette s mit prop in Anzeigekoordinaten .FontProperties

new_gc ( ) [Quelle] #

Gibt eine Instanz von a zurück GraphicsContextBase.

points_to_pixels ( Punkte ) [Quelle] #

Konvertieren Sie Punkte in Anzeigeeinheiten.

Sie müssen diese Funktion überschreiben (es sei denn, Ihr Backend hat keine dpi, z. B. Postscript oder SVG). Einige Bildgebungssysteme gehen von einem bestimmten Wert für Pixel pro Zoll aus:

points to pixels = points * pixels_per_inch/72 * dpi/72
Parameter :
Punkte Floating oder Array-artig

ein Float oder ein numpy-Array von Float

Rückgaben :
Punkte in Pixel umgewandelt
matplotlib.backends.backend_template. show ( * , block = None ) [Quelle] #

Für Bild-Backends - ist nicht erforderlich. Für GUI-Backends ist show() normalerweise die letzte Zeile eines Pyplot-Skripts und teilt dem Backend mit, dass es Zeit zum Zeichnen ist. Im interaktiven Modus sollte dies nichts bewirken.