backend_template#

Un backend entièrement fonctionnel et inactif destiné à servir de modèle pour les rédacteurs de backend. Il est entièrement fonctionnel dans la mesure où vous pouvez le sélectionner comme backend, par exemple avec

import matplotlib
matplotlib.use("template")

et votre programme s'exécutera (devrait !) sans erreur, bien qu'aucune sortie ne soit produite. Cela fournit un point de départ pour les rédacteurs backend ; vous pouvez implémenter de manière sélective des méthodes de dessin ( draw_path, draw_image, etc.) et voir lentement votre figure prendre vie au lieu d'avoir une implémentation complète avant d'obtenir des résultats.

Copiez ce fichier dans un répertoire en dehors de l'arborescence source de Matplotlib, quelque part où Python peut l'importer (en ajoutant le répertoire à votre sys.pathou en le conditionnant comme un package Python normal) ; si le backend est importable car vous pouvez ensuite le sélectionner en utilisantimport my.backend

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

Si votre backend implémente la prise en charge de la sauvegarde des chiffres (c'est-à-dire qu'il dispose d'une print_xyz méthode), vous pouvez l'enregistrer comme gestionnaire par défaut pour un type de fichier donné :

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

pseudonyme deFigureCanvasTemplate

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

Socles :FigureCanvasBase

La toile dans laquelle la figure se rend. Appelle les méthodes draw et print fig, crée les rendus, etc.

Remarque : les modèles d'interface graphique voudront connecter les événements pour les appuis sur les boutons, les mouvements de la souris et les appuis sur les touches aux fonctions qui appellent les méthodes de classe de base button_press_event, button_release_event, motion_notify_event, key_press_event et key_release_event. Voir les implémentations des backends interactifs pour des exemples.

Attributs :
chiffrematplotlib.figure.Figure

Une instance Figure de haut niveau

dessiner ( ) [source] #

Dessinez la figure à l'aide du moteur de rendu.

Il est important que cette méthode parcoure réellement l'arborescence de l'artiste même si aucune sortie n'est produite, car cela déclenchera un travail différé (comme le calcul des limites automatiques et des valeurs de coche) auquel les utilisateurs peuvent vouloir accéder avant d'enregistrer sur le disque.

filetypes = {'eps': 'Encapsulated Postscript', 'foo': 'My magic Foo format', 'jpeg': 'Joint Photographic Experts Group', 'jpg': 'Joint Photographic Experts Group', 'pdf': ' Portable Document Format', 'pgf' : ' Code PGF pour LaTeX', 'png' : 'Portable Network Graphics', 'ps' : 'Postscript', 'raw' : 'Bitmap RVB brut', ' rgba ' : 'Bitmap RVB brut ', '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 ( ) [source] #

Renvoie le format de fichier savefig par défaut tel que spécifié dans rcParams["savefig.format"](par défaut : 'png').

La chaîne renvoyée n'inclut pas de point. Cette méthode est remplacée dans les backends qui ne prennent en charge qu'un seul type de fichier.

manager_class [source] #

pseudonyme deFigureManagerTemplate

print_foo ( nom de fichier , * args , ** kwargs ) [source] #

Écrivez le format foo.

Cette méthode est normalement appelée via Figure.savefiget FigureCanvasBase.print_figure, qui s'occupent de définir la couleur de face, la couleur de bord et le dpi de la figure sur les valeurs de sortie souhaitées, et les restaurent aux valeurs d'origine. Par conséquent, print_foon'a pas besoin de gérer ces paramètres.

matplotlib.backends.backend_template. Gestionnaire de figures [source] #

pseudonyme deFigureManagerTemplate

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

Socles :FigureManagerBase

Classe d'assistance pour le mode pyplot, encapsule tout dans un ensemble soigné.

Pour les backends non interactifs, la classe de base est suffisante.

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

Socles :GraphicsContextBase

Le contexte graphique fournit la couleur, les styles de ligne, etc. Voir les backends cairo et postscript pour des exemples de mappage des attributs de contexte graphique (styles de majuscules, styles de jointure, largeurs de ligne, couleurs) à un backend particulier. Au cairo, cela se fait en enveloppant un objet cairo.Context et en lui transmettant les appels appropriés à l'aide d'un dictionnaire mappant les styles aux constantes gdk. Dans Postscript, tout le travail est effectué par le rendu, mappant les styles de ligne aux appels postscript.

S'il est plus approprié de faire le mappage au niveau du moteur de rendu (comme dans le backend postscript), vous n'avez pas besoin de remplacer l'une des méthodes GC. S'il est plus approprié d'encapsuler une instance (comme dans le backend cairo) et d'effectuer le mappage ici, vous devrez remplacer plusieurs des méthodes de définition.

Le GraphicsContext de base stocke les couleurs sous la forme d'un tuple RVB sur l'intervalle unitaire, par exemple (0,5, 0,0, 1,0). Vous devrez peut-être mapper cela aux couleurs appropriées pour votre backend.

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

Socles :RendererBase

Le moteur de rendu gère les opérations de dessin/rendu.

Il s'agit d'une classe minimale à ne rien faire qui peut être utilisée pour démarrer lors de l'écriture d'un nouveau backend. Reportez-vous à backend_bases.RendererBasepour la documentation des méthodes.

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

Dessinez une image RGBA.

Paramètres :
gcGraphicsContextBase

Un contexte graphique avec des informations de découpage.

x scalaire

La distance en unités physiques (c'est-à-dire, points ou pixels) depuis le côté gauche du canevas.

y scalaire

La distance en unités physiques (c'est-à-dire, points ou pixels) depuis le bas du canevas.

im (N, M, 4) comme un tableau de np.uint8

Un tableau de pixels RGBA.

transformermatplotlib.transforms.Affine2DBase

Si et seulement si le backend concret est écrit de telle sorte que option_scale_imagerenvoie True, une transformation affine (c'est-à-dire un Affine2DBase) peut être passée à draw_image. Le vecteur de translation de la transformation est donné en unités physiques (c'est-à-dire points ou pixels). Notez que la transformation ne remplace pas x et y , et doit être appliquée avant de traduire le résultat par x et y (cela peut être accompli en ajoutant x et y au vecteur de translation défini par transform ).

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

Dessinez une Pathinstance à l'aide de la transformation affine donnée.

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

Dessinez une instance de texte.

Paramètres :
gcGraphicsContextBase

Le contexte graphique.

x flotteur

L'emplacement x du texte dans les coordonnées d'affichage.

je flotte

L'emplacement y de la ligne de base du texte dans les coordonnées d'affichage.

s str

La chaîne de texte.

soutenirmatplotlib.font_manager.FontProperties

Les propriétés de la police.

flotteur d' angle

L'angle de rotation en degrés dans le sens inverse des aiguilles d'une montre.

textmultmatplotlib.text.Text

L'objet texte d'origine à rendre.

Remarques

Remarque pour les implémenteurs backend :

Lorsque vous essayez de déterminer si vous avez correctement défini votre cadre de délimitation (ce qui permet à la disposition/à l'alignement du texte de fonctionner correctement), il est utile de modifier la ligne dans text.py :

if 0: bbox_artist(self, renderer)

à si 1, puis la zone de délimitation réelle sera tracée avec votre texte.

flipy ( ) [source] #

Renvoie si les valeurs y augmentent de haut en bas.

Notez que cela n'affecte que le dessin des textes.

get_canvas_width_height ( ) [source] #

Renvoie la largeur et la hauteur du canevas dans les coordonnées d'affichage.

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

Obtenez la largeur, la hauteur et la descente (décalage du bas à la ligne de base), dans les coordonnées d'affichage, de la chaîne s avec prop .FontProperties

nouveau_gc ( ) [source] #

Renvoie une instance d'un GraphicsContextBase.

points_to_pixels ( points ) [source] #

Convertissez des points en unités d'affichage.

Vous devez remplacer cette fonction (sauf si votre backend n'a pas de dpi, par exemple, postscript ou svg). Certains systèmes d'imagerie supposent une certaine valeur pour les pixels par pouce :

points to pixels = points * pixels_per_inch/72 * dpi/72
Paramètres :
les points flottent ou ressemblent à des tableaux

un float ou un tableau numpy de float

Retours :
Points convertis en pixels
matplotlib.backends.backend_template. show ( * , bloc = Aucun ) [source] #

Pour les backends d'image - n'est pas nécessaire. Pour les backends GUI - show() est généralement la dernière ligne d'un script pyplot et indique au backend qu'il est temps de dessiner. En mode interactif, cela ne devrait rien faire.