backend_template#

Um back-end totalmente funcional e que não faz nada, destinado a ser um modelo para escritores de back-end. É totalmente funcional, pois você pode selecioná-lo como back-end, por exemplo, com

import matplotlib
matplotlib.use("template")

e seu programa irá (deve!) rodar sem erros, embora nenhuma saída seja produzida. Isso fornece um ponto de partida para escritores de back-end; você pode implementar seletivamente métodos de desenho ( draw_path, draw_image, etc.) e lentamente ver sua figura ganhar vida, em vez de ter que ter uma implementação completa antes de obter qualquer resultado.

Copie este arquivo para um diretório fora da árvore de origem do Matplotlib, em algum lugar onde o Python possa importá-lo (adicionando o diretório ao seu sys.pathou empacotando-o como um pacote Python normal); se o back-end for importável, você poderá selecioná-lo usandoimport my.backend

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

Se o seu back-end implementa suporte para salvar figuras (ou seja, tem um print_xyz método), você pode registrá-lo como o manipulador padrão para um determinado tipo de arquivo:

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] #

pseudônimo deFigureCanvasTemplate

classe matplotlib.backends.backend_template. FigureCanvasTemplate ( figure = None ) [source] #

Bases:FigureCanvasBase

A tela na qual a figura é renderizada. Chama os métodos draw e print fig, cria os renderizadores, etc.

Observação: os modelos de GUI devem conectar eventos para pressionamentos de botão, movimentos do mouse e pressionamentos de tecla a funções que chamam os métodos de classe base button_press_event, button_release_event, motion_notify_event, key_press_event e key_release_event. Consulte as implementações dos back-ends interativos para obter exemplos.

Atributos :
figuramatplotlib.figure.Figure

Uma instância Figure de alto nível

desenhar ( ) [fonte] #

Desenhe a figura usando o renderizador.

É importante que esse método realmente percorra a árvore do artista, mesmo que nenhuma saída seja produzida, porque isso acionará o trabalho adiado (como limites de computação, limites automáticos e valores de escala) que os usuários podem querer acessar antes de salvar no disco.

filetypes = {'eps': ' Postscript encapsulado ', 'foo': 'Meu formato foo mágico ', 'jpeg': 'Grupo de especialistas fotográficos conjuntos ', 'jpg': 'Grupo de especialistas fotográficos conjuntos ', 'pdf': ' Portable Document Format', 'pgf': ' Código PGF para LaTeX', 'png': 'Portable Network Graphics', 'ps': 'Postscript', 'raw': 'Bitmap RGBA bruto', 'rgba': 'Bitmap RGBA bruto ', '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] #

Retorna o formato de arquivo savefig padrão conforme especificado em rcParams["savefig.format"](padrão: 'png').

A string retornada não inclui um ponto. Este método é substituído em back-ends que suportam apenas um único tipo de arquivo.

manager_class [fonte] #

pseudônimo deFigureManagerTemplate

print_foo ( nome do arquivo , * args , ** kwargs ) [fonte] #

Escreva o formato foo.

Este método é normalmente chamado via Figure.savefige FigureCanvasBase.print_figure, que se encarregam de configurar a figura facecolor, edgecolor e dpi para os valores de saída desejados, e irá restaurá-los para os valores originais. Portanto, print_foonão precisa lidar com essas configurações.

matplotlib.backends.backend_template. FigureManager [fonte] #

pseudônimo deFigureManagerTemplate

classe matplotlib.backends.backend_template. FigureManagerTemplate ( canvas , num ) [source] #

Bases:FigureManagerBase

A classe auxiliar para o modo pyplot agrupa tudo em um pacote organizado.

Para back-ends não interativos, a classe base é suficiente.

classe matplotlib.backends.backend_template. GraphicsContextTemplate [fonte] #

Bases:GraphicsContextBase

O contexto gráfico fornece a cor, estilos de linha, etc. Veja os backends cairo e postscript para exemplos de mapeamento dos atributos de contexto gráfico (estilos de tampa, estilos de junção, larguras de linha, cores) para um backend específico. No cairo, isso é feito envolvendo um objeto cairo.Context e encaminhando as chamadas apropriadas para ele usando um dicionário de mapeamento de estilos para constantes gdk. No Postscript, todo o trabalho é feito pelo renderizador, mapeando estilos de linha para chamadas de postscript.

Se for mais apropriado fazer o mapeamento no nível do renderizador (como no postscript back-end), você não precisa substituir nenhum dos métodos de GC. Se for mais apropriado envolver uma instância (como no back-end do cairo) e fazer o mapeamento aqui, você precisará substituir vários dos métodos setter.

O GraphicsContext base armazena cores como uma tupla RGB no intervalo da unidade, por exemplo, (0,5, 0,0, 1,0). Pode ser necessário mapear isso para cores apropriadas para o seu back-end.

classe matplotlib.backends.backend_template. RendererTemplate ( dpi ) [fonte] #

Bases:RendererBase

O renderizador lida com operações de desenho/renderização.

Esta é uma classe mínima que não faz nada que pode ser usada para começar a escrever um novo back-end. Consulte para obter a backend_bases.RendererBasedocumentação dos métodos.

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

Desenhe uma imagem RGBA.

Parâmetros :
gcGraphicsContextBase

Um contexto gráfico com informações de recorte.

x escalar

A distância em unidades físicas (ou seja, pontos ou pixels) do lado esquerdo da tela.

y escalar

A distância em unidades físicas (ou seja, pontos ou pixels) da parte inferior da tela.

im (N, M, 4) semelhante a uma matriz de np.uint8

Uma matriz de pixels RGBA.

transformarmatplotlib.transforms.Affine2DBase

Se e somente se o back-end concreto for escrito de forma que option_scale_imageretorne True, uma transformação afim (isto é, um Affine2DBase) poderá ser passada para draw_image. O vetor de translação da transformação é dado em unidades físicas (ou seja, pontos ou pixels). Observe que a transformação não substitui x e y , e deve ser aplicada antes de traduzir o resultado por x e y (isso pode ser feito adicionando x e y ao vetor de translação definido por transform ).

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

Desenhe uma Pathinstância usando a transformação afim fornecida.

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

Desenhe uma instância de texto.

Parâmetros :
gcGraphicsContextBase

O contexto gráfico.

x flutuar

A localização x do texto nas coordenadas de exibição.

você flutua

A localização y da linha de base do texto nas coordenadas de exibição.

s str

A sequência de texto.

suportematplotlib.font_manager.FontProperties

As propriedades da fonte.

ângulo flutuante

O ângulo de rotação em graus no sentido anti-horário.

mtextmatplotlib.text.Text

O objeto de texto original a ser renderizado.

Notas

Observação para implementadores de back-end:

Quando você está tentando determinar se acertou sua caixa delimitadora (que é o que permite que o layout/alinhamento do texto funcione corretamente), é útil alterar a linha em text.py:

if 0: bbox_artist(self, renderer)

para se 1 e, em seguida, a caixa delimitadora real será plotada junto com seu texto.

flipy ( ) [fonte] #

Retorna se os valores de y aumentam de cima para baixo.

Observe que isso afeta apenas o desenho de textos.

get_canvas_width_height ( ) [fonte] #

Retorna a largura e a altura da tela nas coordenadas de exibição.

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

Obtenha a largura, altura e descida (deslocamento da parte inferior até a linha de base), em coordenadas de exibição, da string s com prop .FontProperties

new_gc ( ) [fonte] #

Retorne uma instância de um GraphicsContextBase.

points_to_pixels ( pontos ) [fonte] #

Converta pontos em unidades de exibição.

Você precisa substituir esta função (a menos que seu back-end não tenha um dpi, por exemplo, postscript ou svg). Alguns sistemas de imagem assumem algum valor para pixels por polegada:

points to pixels = points * pixels_per_inch/72 * dpi/72
Parâmetros :
pontos float ou array-like

um float ou um array numpy de float

Devoluções :
Pontos convertidos em pixels
matplotlib.backends.backend_template. show ( * , bloco = Nenhum ) [fonte] #

Para back-ends de imagem - não é necessário. Para back-ends de GUI - show () geralmente é a última linha de um script pyplot e informa ao back-end que é hora de desenhar. No modo interativo, isso não deve fazer nada.