Introduction
Ce laboratoire vous guidera tout au long du processus d'utilisation directement du backend agg pour créer des images dans Python Matplotlib. Le backend agg est utile pour les développeurs d'applications web qui souhaitent avoir un contrôle total sur leur code sans utiliser l'interface pyplot pour gérer les figures, la fermeture des figures, etc. Dans ce laboratoire, nous allons vous montrer comment enregistrer le contenu de la toile agg dans un fichier et comment l'extraire dans un tableau numpy, qui peut à son tour être transmis à Pillow.
Conseils sur la machine virtuelle
Une fois le démarrage de la machine virtuelle terminé, cliquez dans le coin supérieur gauche pour basculer vers l'onglet Carnet d'étude pour accéder au carnet Jupyter pour pratiquer.
Parfois, vous devrez peut-être attendre quelques secondes pour que le carnet Jupyter ait fini de charger. La validation des opérations ne peut pas être automatisée en raison des limitations du carnet Jupyter.
Si vous rencontrez des problèmes pendant l'apprentissage, n'hésitez pas à demander à Labby. Donnez votre feedback après la session, et nous réglerons rapidement le problème pour vous.
Créer une figure et une toile
Tout d'abord, nous devons créer une figure et une toile. La figure définit la taille, la forme et le contenu du tracé, tandis que la toile est l'endroit où la figure est dessinée.
from matplotlib.backends.backend_agg import FigureCanvasAgg
from matplotlib.figure import Figure
fig = Figure(figsize=(5, 4), dpi=100)
canvas = FigureCanvasAgg(fig)
Ajouter des données de tracé à la figure
Maintenant que nous avons une figure et une toile, nous pouvons ajouter des données au tracé. Dans cet exemple, nous allons ajouter un tracé de ligne simple.
ax = fig.add_subplot()
ax.plot([1, 2, 3])
Enregistrer la figure dans un fichier
Il existe deux options pour enregistrer le tracé. La première option est d'enregistrer la figure dans un fichier. Dans cet exemple, nous allons enregistrer le tracé sous forme d'image PNG.
fig.savefig("test.png")
Extraire le tampon du render dans un tableau numpy
La deuxième option pour enregistrer le tracé est d'extraire le tampon du render dans un tableau numpy. Cela nous permet d'utiliser Matplotlib dans un script cgi sans avoir besoin d'écrire une figure sur le disque. Dans cet exemple, nous allons extraire le tampon du render et le convertir en un tableau numpy.
import numpy as np
canvas.draw()
rgba = np.asarray(canvas.buffer_rgba())
Enregistrer le tableau numpy sous forme d'image Pillow
Maintenant que nous avons le tableau numpy, nous pouvons le passer à Pillow et l'enregistrer au format pris en charge par Pillow. Dans cet exemple, nous allons enregistrer le tracé sous forme d'image BMP.
from PIL import Image
im = Image.fromarray(rgba)
im.save("test.bmp")
Sommaire
Dans ce laboratoire, nous vous avons montré comment utiliser le backend agg dans Matplotlib Python pour créer des images. Nous avons créé une figure et une toile, ajouté des données au tracé et enregistré le tracé sous forme d'image PNG. Nous avons également extrait le tampon du render dans un tableau numpy et enregistré le tracé sous forme d'image BMP à l'aide de Pillow. Ces techniques sont utiles pour les développeurs d'applications web qui souhaitent avoir un contrôle total sur leur code sans utiliser l'interface pyplot pour gérer les figures, la fermeture des figures, etc.