Сначала вам потребуется страница для загрузки URL-адреса из контроллера веб-сервера, который генерирует изображение:
<img src="/matplot/makegraph?arg1=foo" />
Затем вставьте код matplotlib в контроллер makegraph
.Вам просто нужно захватить рендеринг PNG с холстом в буфере памяти, затем создать ответ HTTP и записать байты обратно в браузер:
import cStringIO
from matplotlib.figure import Figure
from matplotlib.backends.backend_agg import FigureCanvasAgg
fig = Figure(figsize=[4,4])
ax = fig.add_axes([.1,.1,.8,.8])
ax.scatter([1,2], [3,4])
canvas = FigureCanvasAgg(fig)
# write image data to a string buffer and get the PNG image bytes
buf = cStringIO.StringIO()
canvas.print_png(buf)
data = buf.getvalue()
# pseudo-code for generating the http response from your
# webserver, and writing the bytes back to the browser.
# replace this with corresponding code for your web framework
headers = {
'Content-Type': 'image/png',
'Content-Length': len(data)
}
response.write(200, 'OK', headers, data)
Примечание: вы можете добавить кеширование для них, есличасто генерируются с одними и теми же аргументами, например, строят ключ из аргументов и записывают данные изображения в memcache, затем проверяют memcache перед восстановлением графика.