Bokehにおけるファイル出力

Table of Contents

2020年9月23日追記:
bokeh 2.2.1 ではhtmlからpngへのエクスポートで画像全体が出力されないバグがありました.bokeh 1.4.0 では問題ありませんでした.bokeh 1.4.0 をインストールするには,仮想環境を作成し,conda install -c pyviz bokeh==1.4.0 とします.

当記事はWindows 10を対象としております.Pythonにおけるグラフ作成はMatplotlibが定番ですが,Bokehはインタラクティブなグラフをお手軽に作成できる比較的新しいパッケージです.ただし,パワーポイントやワードに貼り付けるための画像出力が,デフォルトでは解像度が低すぎ,図を作成する段階で縦横のピクセル数の値を大きく設定することで対応していました.しかし,このやり方では文字の大きさが変わらないため,ピクセル数を変更する度に文字の大きさも設定しなくてはならず,大変手間がかかっていました.この問題の比較的ましな解決法が分かりましたので,記しておきます.

Html出力

Bokehではhtml出力が簡単にでき,ツールバーもJupyter Notebook上と同様に動くため,インタラクティブに使えます.そこで,まず,htmlファイルとして出力します.以下のように saveimport しておきます.

from bokeh.io import save

グラフオブジェクトが p であるとすると,以下のようにして html ファイルを出力します.出力は速いです.

save(p, filename='output.html')

作成された output.html をダブルクリックする等してブラウザ(Google Chromeで確認しました)で表示しますと,インタラクティブに動かすこともでき,ツールバーのファイル出力でPNGファイルとして出力も可能です.さらに,ブラウザのズーム機能でグラフを拡大し,PNGファイル出力すれば,解像度を上げることができます.文字もズームに合わせて拡大されますので大変便利です.また,このhtmlはベクトル形式のように振る舞うためか,拡大しても文字等がぎざぎざしません.
結論としては,htmlファイル出力し,それを ブラウザで表示後,適当にズームし,PNGファイル出力する のがお薦めです.
ちなみに,export_pngimport して, export_png(p, 'output.png') によりPNGファイル出力することも可能ですが,先に挙げた欠点があるのに加え,非常に遅いです.

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください