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_path
Sie können Zeichenmethoden ( ,
, etc.) selektiv implementieren draw_image
und 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.path
oder 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 von
FigureCanvasTemplate
- 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 :
- Zahl
matplotlib.figure.Figure
Eine Figure-Instanz auf hoher Ebene
- Zahl
- 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 von
FigureManagerTemplate
- print_foo ( Dateiname , * args , ** kwargs ) [Quelle] #
Schreiben Sie das Format foo aus.
Diese Methode wird normalerweise über
Figure.savefig
und aufgerufenFigureCanvasBase.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. Daherprint_foo
muss diese Einstellungen nicht behandelt werden.
- matplotlib.backends.backend_template. FigureManager [Quelle] #
Pseudonym von
FigureManagerTemplate
- 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.RendererBase
für die Dokumentation der Methoden.- draw_image ( gc , x , y , im ) [Quelle] #
Zeichnen Sie ein RGBA-Bild.
- Parameter :
- gg
GraphicsContextBase
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.
- verwandeln
matplotlib.transforms.Affine2DBase
Nur wenn das konkrete Backend so geschrieben ist, dass es
option_scale_image
zurückgibt , kannTrue
eine affine Transformation (dh einAffine2DBase
) 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
- gg
- draw_path ( gc , path , transform , rgbFace = None ) [Quelle] #
Zeichne eine
Path
Instanz mit der gegebenen affinen Transformation.
- draw_text ( gc , x , y , s , prop , angle , ismath = False , mtext = None ) [Quelle] #
Zeichnen Sie eine Textinstanz.
- Parameter :
- gg
GraphicsContextBase
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ütze
matplotlib.font_manager.FontProperties
Die Schrifteigenschaften.
- Winkelschwimmer _
Der Drehwinkel in Grad gegen den Uhrzeigersinn.
- Text
matplotlib.text.Text
Das ursprüngliche Textobjekt, das gerendert werden soll.
- gg
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.