Bokeh ではグラフの出力先は HTML でしたが、バージョン 0.12.6 から PNG形式と SVG形式に出力できるようになりました。
前提条件
- Bokeh 0.12.6以降
- selenium
- pillow
- phantomjs
なんと、selenium や phantomjs をインストールしないといけないようです。
内部でどんなことやってるかを想像すると空恐ろしいですね・・・
下記の手順は linux を対象としています。余裕があれば Windows で試した手順も更新したいと思います。
pip install selenium pillow
sudo npm install -g phantomjs-prebuilt
PNGで出力
export_png()
関数を使います。従来では show()
関数でグラフを出力していましたが、これの代わりに export_png()
を使うと思っておけば問題ないと思います。
from bokeh.plotting import figure
from bokeh.io import export_png
p = figure()
p.line([1, 2], [1, 2])
export_png(p, 'line.png')
SVGで出力
export_svgs()
関数を使います。注意する点として、figure()
関数のキーワード引数 output_backend
に 'svg' を指定する必要があります。
from bokeh.io import export_svgs
p = figure(output_backend='svg')
p.line([1, 2], [1, 2])
export_svgs(p, 'line.svg')