Flaskを使ってMatplotlibグラフを表示する
[Flask + Matplolib] Flaskを使ってMatplotlibグラフを表示する
Flask(python)側で計算させた結果を、Matplotlibを使ってグラフにし、それを上手いことHTMLで表示したいと思ってるので調査してみる。
先行事例
- ローカルに画像を保存する方法
- キャッシュに保存する方法
- Content-Type:image/pngで送る方法
なんとなくしらべると上記の流れがありそう。
調査
matplotlib を Flask から使う方法
引用
- Matplotlib in a web application server — Howto — Matplotlib v1.0.1 documentation
- Upload a StringIO object with send_file | Flask (A Python Microframework)
- flask.send_file — API — Flask 0.8 documentation
import matplotlib matplotlib.use('Agg') from matplotlib import pyplot import numpy from flask import Flask, send_file from cStringIO import StringIO app = Flask(__name__) def plot(image): x = numpy.linspace(0, 10) y = numpy.sin(x) pyplot.plot(x, y) pyplot.savefig(image, format='png') @app.route('/image.png') def image_png(): image = StringIO() plot(image) image.seek(0) return send_file(image, attachment_filename="image.png", as_attachment=True) @app.route('/') def index(): return '<img src="image.png">' app.run(debug=True)
HTMLでは、ファイル(image.png)を直接リクエスト?アクセスしている。
そうすることで、Flaskにてファイル生成の処理が実行され、
最終的にsend_file()で画像ファイルが返される仕組み。
しかし、これだと、HTMLロード時にしか画像が更新されないので注意。
Pythonによるデータ分析入門 ―NumPy、pandasを使ったデータ処理
- 作者: Wes McKinney,小林儀匡,鈴木宏尚,瀬戸山雅人,滝口開資,野上大介
- 出版社/メーカー: オライリージャパン
- 発売日: 2013/12/26
- メディア: 大型本
- この商品を含むブログ (13件) を見る
IPythonデータサイエンスクックブック ―対話型コンピューティングと可視化のためのレシピ集
- 作者: Cyrille Rossant,菊池彰
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/25
- メディア: 大型本
- この商品を含むブログ (1件) を見る
- 作者: 裕時悠示
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2016/11/17
- メディア: Kindle版
- この商品を含むブログを見る
- 作者: 丸戸史明,深崎暮人
- 出版社/メーカー: KADOKAWA
- 発売日: 2016/11/19
- メディア: 文庫
- この商品を含むブログを見る
- 作者: 近江のこ
- 出版社/メーカー: 小学館
- 発売日: 2016/11/18
- メディア: Kindle版
- この商品を含むブログを見る