backend_template#

Un backend completamente funcional, que no hace nada, diseñado como una plantilla para los escritores de backend. Es completamente funcional en el sentido de que puede seleccionarlo como backend, por ejemplo, con

import matplotlib
matplotlib.use("template")

y su programa se ejecutará (¡debería!) Sin errores, aunque no se produzca ningún resultado. Esto proporciona un punto de partida para los escritores de back-end; puede implementar métodos de dibujo de forma selectiva ( draw_path, draw_image, etc.) y ver cómo su figura cobra vida lentamente en lugar de tener que realizar una implementación completa antes de obtener algún resultado.

Copie este archivo en un directorio fuera del árbol fuente de Matplotlib, en algún lugar donde Python pueda importarlo (agregando el directorio a su directorio sys.patho empaquetándolo como un paquete normal de Python); si el backend es importable, puede seleccionarlo usandoimport my.backend

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

Si su backend implementa soporte para guardar cifras (es decir, tiene un print_xyz método), puede registrarlo como el controlador predeterminado para un tipo de archivo determinado:

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

alias deFigureCanvasTemplate

clase matplotlib.backends.backend_template. FigureCanvasTemplate ( figura = Ninguno ) [fuente] #

Bases:FigureCanvasBase

El lienzo en el que se convierte la figura. Llama a los métodos draw e print fig, crea los renderizadores, etc.

Nota: Las plantillas de GUI querrán conectar eventos para presionar botones, mover el mouse y presionar teclas a funciones que llamen a los métodos de clase base button_press_event, button_release_event, motion_notify_event, key_press_event y key_release_event. Vea las implementaciones de los backends interactivos para ver ejemplos.

Atributos :
figuramatplotlib.figure.Figure

Una instancia de figura de alto nivel

dibujar ( ) [fuente] #

Dibuja la figura usando el renderizador.

Es importante que este método realmente recorra el árbol del artista, incluso si no se produce una salida, porque esto activará el trabajo diferido (como límites de cálculo, límites automáticos y valores de marca) al que los usuarios pueden querer acceder antes de guardar en el disco.

filetypes = {'eps': ' Postscript encapsulado ', 'foo': 'Mi formato Foo mágico ', 'jpeg': 'Grupo conjunto de expertos en fotografía ', 'jpg': 'Grupo conjunto de expertos en fotografía ', 'pdf': ' Formato de documento portátil ', 'pgf': ' Código PGF para LaTeX', 'png': ' Gráficos de red portátiles ', 'ps': 'Postscript', 'raw': 'Mapa de bits RGBA sin procesar ', 'rgba': 'Mapa de bits RGBA sin procesar ', 'svg': 'Gráficos vectoriales escalables ', 'svgz': 'Gráficos vectoriales escalables ', 'tif': 'Formato de archivo de imagen etiquetado ', 'tiff': 'Formato de archivo de imagen etiquetado ', 'webp': ' Formato de imagen WebP '} #
get_default_filetype ( ) [fuente] #

Devuelve el formato de archivo savefig predeterminado como se especifica en rcParams["savefig.format"](predeterminado: 'png').

La cadena devuelta no incluye un punto. Este método se anula en los backends que solo admiten un único tipo de archivo.

manager_class [fuente] #

alias deFigureManagerTemplate

print_foo ( nombre de archivo , * argumentos , ** kwargs ) [fuente] #

Escriba el formato foo.

Este método normalmente se llama vía Figure.savefigy FigureCanvasBase.print_figure, que se encargan de establecer el color de la cara, el color del borde y los ppp de la figura en los valores de salida deseados, y los restaurará a los valores originales. Por lo tanto, print_foono necesita manejar estos ajustes.

matplotlib.backends.backend_template. Gestor de figuras [fuente] #

alias deFigureManagerTemplate

clase matplotlib.backends.backend_template. FigureManagerTemplate ( lienzo , número ) [fuente] #

Bases:FigureManagerBase

Clase de ayuda para el modo pyplot, envuelve todo en un paquete ordenado.

Para backends no interactivos, la clase base es suficiente.

clase matplotlib.backends.backend_template. GraphicsContextTemplate [fuente] #

Bases:GraphicsContextBase

El contexto de gráficos proporciona el color, los estilos de línea, etc. Consulte los backends cairo y postscript para ver ejemplos de asignación de atributos de contexto de gráficos (estilos de tapa, estilos de unión, anchos de línea, colores) a un backend en particular. En el cairo, esto se hace envolviendo un objeto cairo.Context y reenviando las llamadas apropiadas a él usando estilos de mapeo de diccionario para constantes gdk. En Postscript, todo el trabajo lo realiza el renderizador, asignando estilos de línea a las llamadas de Postscript.

Si es más apropiado hacer el mapeo en el nivel del renderizador (como en el backend de postscript), no necesita anular ninguno de los métodos de GC. Si es más apropiado envolver una instancia (como en el backend de cairo) y hacer el mapeo aquí, deberá anular varios de los métodos de configuración.

El GraphicsContext base almacena colores como una tupla RGB en el intervalo de la unidad, por ejemplo, (0.5, 0.0, 1.0). Es posible que deba asignar esto a los colores apropiados para su backend.

clase matplotlib.backends.backend_template. RendererTemplate ( dpi ) [fuente] #

Bases:RendererBase

El renderizador maneja las operaciones de dibujo/renderizado.

Esta es una clase mínima de no hacer nada que se puede usar para comenzar a escribir un nuevo backend. Consulte backend_bases.RendererBasepara la documentación de los métodos.

dibujar_imagen ( gc , x , y , im ) [fuente] #

Dibujar una imagen RGBA.

Parámetros :
gcGraphicsContextBase

Un contexto gráfico con información de recorte.

x escalar

La distancia en unidades físicas (es decir, puntos o píxeles) desde el lado izquierdo del lienzo.

y escalar

La distancia en unidades físicas (es decir, puntos o píxeles) desde la parte inferior del lienzo.

im (N, M, 4) como una matriz de np.uint8

Una matriz de píxeles RGBA.

transformarmatplotlib.transforms.Affine2DBase

Si y solo si el backend concreto se escribe de tal forma que option_scale_imagedevuelve , se puede pasar Trueuna transformación afín (es decir, an Affine2DBase) a . El vector de traducción de la transformación se da en unidades físicas (es decir, puntos o píxeles). Tenga en cuenta que la transformación no anula x e y , y debe aplicarse antes de traducir el resultado por x e y (esto se puede lograr agregando x e y al vector de traducción definido por transform ).draw_image

dibujar_ruta ( gc , ruta , transformar , rgbFace = Ninguno ) [fuente] #

Dibuja una Pathinstancia usando la transformación afín dada.

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

Dibuja una instancia de texto.

Parámetros :
gcGraphicsContextBase

El contexto gráfico.

x flotador

La ubicación x del texto en las coordenadas de visualización.

flotas _

La ubicación y de la línea de base del texto en las coordenadas de visualización.

calle s

La cadena de texto.

apuntalarmatplotlib.font_manager.FontProperties

Las propiedades de la fuente.

ángulo de flotación

El ángulo de rotación en grados en sentido contrario a las agujas del reloj.

textommatplotlib.text.Text

El objeto de texto original que se representará.

notas

Nota para los implementadores de back-end:

Cuando intenta determinar si ha acertado con el cuadro delimitador (que es lo que permite que el diseño/alineación del texto funcione correctamente), es útil cambiar la línea en text.py:

if 0: bbox_artist(self, renderer)

a si 1, y luego el cuadro delimitador real se trazará junto con su texto.

flipy ( ) [fuente] #

Devuelve si los valores de y aumentan de arriba hacia abajo.

Tenga en cuenta que esto solo afecta el dibujo de textos.

get_canvas_width_height ( ) [fuente] #

Devuelve el ancho y la altura del lienzo en las coordenadas de visualización.

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

Obtenga el ancho, la altura y el descenso (desplazamiento desde la parte inferior hasta la línea de base), en coordenadas de visualización, de la cadena s con prop .FontProperties

new_gc ( ) [fuente] #

Devolver una instancia de un GraphicsContextBase.

points_to_pixels ( puntos ) [fuente] #

Convierte puntos a unidades de visualización.

Debe anular esta función (a menos que su backend no tenga un dpi, por ejemplo, postscript o svg). Algunos sistemas de imágenes asumen algún valor de píxeles por pulgada:

points to pixels = points * pixels_per_inch/72 * dpi/72
Parámetros :
puntos flotantes o en forma de matriz

un flotador o una matriz numpy de flotadores

Devoluciones :
Puntos convertidos en píxeles
matplotlib.backends.backend_template. mostrar ( * , bloque = Ninguno ) [fuente] #

Para backends de imágenes, no es necesario. Para backends de GUI, show() suele ser la última línea de un script de pyplot y le dice al backend que es hora de dibujar. En modo interactivo, esto no debería hacer nada.