CanvasAgg デモ#

この例では、agg バックエンドを直接使用して画像を作成する方法を示します。これは、pyplot インターフェースを使用して Figure を管理したり、Figure を閉じたりすることなく、コードを完全に制御したい Web アプリケーション開発者に役立つ可能性があります。

ノート

グラフィカルなフロントエンドなしで Figure を作成するために pyplot インターフェースの使用を避ける必要はありません。バックエンドを「Agg」に設定するだけで十分です。

この例では、 agg キャンバスの内容をファイルに保存する方法と、それらを numpy 配列に抽出する方法を示します。これは、次にPillowに渡すことができます。後者の機能により、たとえば、図をディスクに書き込むことなくCGI スクリプト内で Matplotlib を使用したり、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()

参考文献

この例では、次の関数、メソッド、クラス、およびモジュールの使用が示されています。

Sphinx-Gallery によって生成されたギャラリー