Nota
Fare clic qui per scaricare il codice di esempio completo
Dimostrazione CanvasAgg #
Questo esempio mostra come utilizzare direttamente il backend agg per creare immagini, che possono essere utili agli sviluppatori di applicazioni Web che desiderano il pieno controllo del proprio codice senza utilizzare l'interfaccia pyplot per gestire le figure, la chiusura delle figure ecc.
Nota
Non è necessario evitare di utilizzare l'interfaccia pyplot per creare figure senza un front-end grafico: sarebbe sufficiente impostare il back-end su "Agg".
In questo esempio, mostriamo come salvare i contenuti di agg canvas in un file e come estrarli in un array numpy, che a sua volta può essere passato a Pillow . Quest'ultima funzionalità consente ad esempio di utilizzare Matplotlib all'interno di uno script cgi senza dover scrivere una figura su disco e di scrivere immagini in qualsiasi formato supportato da Pillow.
from matplotlib.backends.backend_agg import FigureCanvasAgg
from matplotlib.figure import Figure
import numpy as np
from PIL import Image
fig = Figure(figsize=(5, 4), dpi=100)
# A canvas must be manually attached to the figure (pyplot would automatically
# do it). This is done by instantiating the canvas with the figure as
# argument.
canvas = FigureCanvasAgg(fig)
# Do some plotting.
ax = fig.add_subplot()
ax.plot([1, 2, 3])
# Option 1: Save the figure to a file; can also be a file-like object (BytesIO,
# etc.).
fig.savefig("test.png")
# Option 2: Retrieve a memoryview on the renderer buffer, and convert it to a
# numpy array.
canvas.draw()
rgba = np.asarray(canvas.buffer_rgba())
# ... and pass it to PIL.
im = Image.fromarray(rgba)
# This image can then be saved to any format supported by Pillow, e.g.:
im.save("test.bmp")
# Uncomment this line to display the image using ImageMagick's `display` tool.
# im.show()
Riferimenti
L'uso delle seguenti funzioni, metodi, classi e moduli è mostrato in questo esempio: