backend_template
#
Un back-end completamente funzionale e senza attività inteso come modello per gli autori di back-end. È completamente funzionale in quanto puoi selezionarlo come backend, ad esempio con
import matplotlib
matplotlib.use("template")
e il tuo programma funzionerà (dovrebbe!) senza errori, sebbene non venga prodotto alcun output. Questo fornisce un punto di partenza per gli autori di backend; puoi implementare selettivamente metodi di disegno ( draw_path
,
draw_image
, ecc.) e vedere lentamente la tua figura prendere vita invece di dover avere un'implementazione completa prima di ottenere risultati.
Copia questo file in una directory al di fuori dell'albero dei sorgenti Matplotlib, da qualche parte dove Python può importarlo (aggiungendo la directory al tuo sys.path
o impacchettandolo come un normale pacchetto Python); se il back-end è importabile,
puoi selezionarlo utilizzandoimport my.backend
import matplotlib
matplotlib.use("module://my.backend")
Se il tuo backend implementa il supporto per il salvataggio delle cifre (cioè ha un print_xyz
metodo), puoi registrarlo come gestore predefinito per un dato tipo di file:
from matplotlib.backend_bases import register_backend
register_backend('xyz', 'my_backend', 'XYZ File Format')
...
plt.savefig("figure.xyz")
- matplotlib.backends.backend_template. FigureCanvas [fonte] #
alias di
FigureCanvasTemplate
- classe matplotlib.backends.backend_template. FigureCanvasTemplate ( figura = None ) [fonte] #
Basi:
FigureCanvasBase
La tela in cui la figura si trasforma. Chiama i metodi draw e print fig, crea i renderer, ecc.
Nota: i modelli GUI vorranno connettere gli eventi per la pressione di pulsanti, movimenti del mouse e pressioni di tasti a funzioni che chiamano i metodi della classe base button_press_event, button_release_event, motion_notify_event, key_press_event e key_release_event. Vedere le implementazioni dei backend interattivi per esempi.
- Attributi :
- figura
matplotlib.figure.Figure
Un'istanza di Figure di alto livello
- figura
- disegna ( ) [fonte] #
Disegna la figura usando il renderer.
È importante che questo metodo percorra effettivamente l'albero dell'artista anche se non viene prodotto alcun output perché ciò attiverà il lavoro differito (come i limiti di calcolo, i limiti automatici e i valori di tick) a cui gli utenti potrebbero voler accedere prima di salvare su disco.
- filetypes = {'eps': 'Encapsulated Postscript', 'foo': 'My magic Foo format', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': ' Portable Document Format', 'pgf': ' Codice PGF per LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Bitmap RGBA grezzo', 'rgba': 'Bitmap RGBA grezzo ', '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 ( ) [fonte] #
Restituisce il formato di file savefig predefinito come specificato in
rcParams["savefig.format"]
(default:'png'
).La stringa restituita non include un punto. Questo metodo viene sovrascritto nei backend che supportano solo un singolo tipo di file.
- manager_class [fonte] #
alias di
FigureManagerTemplate
- print_foo ( nome file , * args , ** kwargs ) [fonte] #
Scrivi il formato foo.
Questo metodo è normalmente chiamato via
Figure.savefig
eFigureCanvasBase.print_figure
, che si occupa di impostare facecolor, edgecolor e dpi della figura ai valori di output desiderati e li ripristinerà ai valori originali. Pertanto,print_foo
non è necessario gestire queste impostazioni.
- matplotlib.backends.backend_template. FigureManager [fonte] #
alias di
FigureManagerTemplate
- classe matplotlib.backends.backend_template. FigureManagerTemplate ( canvas , num ) [fonte] #
Basi:
FigureManagerBase
Classe di supporto per la modalità pyplot, racchiude tutto in un pacchetto ordinato.
Per i backend non interattivi, la classe base è sufficiente.
- classe matplotlib.backends.backend_template. GraphicsContextTemplate [fonte] #
Basi:
GraphicsContextBase
Il contesto grafico fornisce il colore, gli stili di linea, ecc. Vedere i backend cairo e postscript per esempi di mappatura degli attributi del contesto grafico (stili di estremità, stili di giunzione, spessori di linea, colori) a un particolare backend. In cairo questo viene fatto avvolgendo un oggetto cairo.Context e inoltrandogli le chiamate appropriate usando un dizionario che mappa gli stili alle costanti gdk. In Postscript, tutto il lavoro viene svolto dal renderer, mappando gli stili di linea alle chiamate postscript.
Se è più appropriato eseguire la mappatura a livello di renderer (come nel backend postscript), non è necessario eseguire l'override di nessuno dei metodi GC. Se è più appropriato eseguire il wrapping di un'istanza (come nel backend cairo) ed eseguire la mappatura qui, dovrai eseguire l'override di molti dei metodi setter.
Il GraphicsContext di base memorizza i colori come una tupla RGB sull'intervallo di unità, ad esempio (0.5, 0.0, 1.0). Potrebbe essere necessario mappare questo ai colori appropriati per il tuo back-end.
- classe matplotlib.backends.backend_template. RendererTemplate ( dpi ) [fonte] #
Basi:
RendererBase
Il renderer gestisce le operazioni di disegno/rendering.
Questa è una classe minima da non fare che può essere utilizzata per iniziare quando si scrive un nuovo backend. Fare riferimento a
backend_bases.RendererBase
per la documentazione dei metodi.- draw_image ( gc , x , y , im ) [fonte] #
Disegna un'immagine RGBA.
- Parametri :
- gc
GraphicsContextBase
Un contesto grafico con informazioni di ritaglio.
- x scalare
La distanza in unità fisiche (ovvero, punti o pixel) dal lato sinistro della tela.
- y scalare
La distanza in unità fisiche (ovvero, punti o pixel) dal lato inferiore dell'area di disegno.
- im (N, M, 4) simile a un array di np.uint8
Un array di pixel RGBA.
- trasformare
matplotlib.transforms.Affine2DBase
Se e solo se il backend concreto è scritto in modo tale che
option_scale_image
restituisceTrue
, può essere passataAffine2DBase
a . Il vettore di traslazione della trasformazione è dato in unità fisiche (cioè, punti o pixel). Si noti che la trasformazione non sovrascrive x e y e deve essere applicata prima di tradurre il risultato in x e y (questo può essere ottenuto aggiungendo x e y al vettore di traduzione definito da transform ).draw_image
- gc
- draw_path ( gc , path , transform , rgbFace = None ) [fonte] #
Disegna
Path
un'istanza usando la trasformata affine data.
- draw_text ( gc , x , y , s , prop , angle , ismath = False , mtext = None ) [fonte] #
Disegna un'istanza di testo.
- Parametri :
- gc
GraphicsContextBase
Il contesto grafico.
- x galleggiante
La posizione x del testo nelle coordinate di visualizzazione.
- tu galleggi
La posizione y della linea di base del testo nelle coordinate di visualizzazione.
- str _
La stringa di testo.
- puntello
matplotlib.font_manager.FontProperties
Le proprietà del carattere.
- galleggiante angolare
L'angolo di rotazione in gradi in senso antiorario.
- mtesto
matplotlib.text.Text
Oggetto di testo originale di cui eseguire il rendering.
- gc
Appunti
Nota per gli implementatori di backend:
Quando stai cercando di determinare se hai ottenuto il riquadro di delimitazione corretto (che è ciò che consente al layout/allineamento del testo di funzionare correttamente), è utile modificare la riga in text.py:
if 0: bbox_artist(self, renderer)
a se 1, quindi il riquadro di delimitazione effettivo verrà tracciato insieme al testo.
- flipy ( ) [fonte] #
Restituisce se i valori y aumentano dall'alto verso il basso.
Si noti che questo riguarda solo il disegno dei testi.
- get_canvas_width_height ( ) [fonte] #
Restituisce la larghezza e l'altezza della tela nelle coordinate di visualizzazione.
- get_text_width_height_descent ( s , prop , ismath ) [fonte] #
Ottieni la larghezza, l'altezza e la discesa (offset dal basso alla linea di base), nelle coordinate di visualizzazione, della stringa s con prop .
FontProperties
- new_gc ( ) [fonte] #
Restituisce un'istanza di un file
GraphicsContextBase
.
- punti_in_pixel ( punti ) [fonte] #
Converti i punti in unità di visualizzazione.
Devi sovrascrivere questa funzione (a meno che il tuo backend non abbia un dpi, ad esempio, postscript o svg). Alcuni sistemi di imaging assumono un certo valore per i pixel per pollice:
points to pixels = points * pixels_per_inch/72 * dpi/72
- Parametri :
- i punti sono float o simili a array
un float o un array numpy di float
- Resi :
- Punti convertiti in pixel
- matplotlib.backends.backend_template. mostra ( * , blocco = Nessuno ) [fonte] #
Per i backend delle immagini - non è richiesto. Per i backend della GUI - show() è solitamente l'ultima riga di uno script pyplot e dice al backend che è ora di disegnare. In modalità interattiva, questo non dovrebbe fare nulla.