Plotlyをオフラインで使う方法 | Plotly徹底解説
ここではオフラインで描画する方法について説明します。
オフラインモードでは以下の2つのやり方でグラフを描画できます。
- ファイルを実行し、ブラウザ上に表示
- エディタであるAtomやjupyterの画面上に表示
またオフラインでプロットする場合、Plotlyのアカウント取得やAPIキーの設定はする必要はありません。
しかし、のちにオンライン上でグラブ編集したり保存するためにはアカウントが必要になるので登録(無料)することをお勧めします。
ではやって行きます。
普通にプロットする
オフラインで描画するために以下の2つをインポートします。
# import plotly.plotly as py <- オンライン用 import plotly.offline as offline # <- オフライン用 import plotly.graph_objs as go
プロットする場合は
offline.plot(data, filename = 'basic-line', auto_open=True)
となります。以下のプログラムをコピペして実行してみてください。
# 以下の2つをインポート import plotly.offline as offline import plotly.graph_objs as go trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 15, 13, 17] ) trace1 = go.Scatter( x=[1, 2, 3, 4], y=[16, 5, 11, 10] ) data = [trace0, trace1] # オフラインでプロット offline.plot(data, filename = 'basic-line', auto_open=True)
ここで、offline.plot
の引数にあるauto_open
をTrue
とすると、作成したグラフを自動的にブラウザで表示してくれます。
auto_open=False
とするとグラフは表示されず生成したファイルのパスを返します。
何れにしてもHTMLファイルが生成され、再度表示することが可能になります。
デフォルトの設定はTrue
となっています。
Atom, jupyter notebookで描画する
基本的には前節で説明したやり方と変わりありませんが、4点ほど違いがあります。
- import文の後ろに
offline.init_notebook_mode()
を追加 offline.plot()
ではなくoffline.iplot()
を使う- HTMLファイルは出力されない。
auto_open
は使えない。(エディタ上で直接見るので当然ですね。)
その他は基本的に同じはずです。
offline.init_notebook_mode()について*1
これはデフォルトでoffline.init_notebook_mode(connected=False)
となり、ブラウザに必要なライブラリ(plotly.js)を読み込みます。
常にオフラインで実行する場合はoffline.init_notebook_mode()
とします。
しかし、この方法だとファイルにplotly.jsを直接読み込むことになるのでファイルサイズが数メガバイト増加します。
試しに以下のコードを使ってjupyter notebookのファイルサイズの変化をみてみます。
# 以下の2つをインポート import plotly.offline as offline import plotly.graph_objs as go offline.init_notebook_mode(connected=False) trace0 = go.Scatter( x=[1, 2, 3, 4], y=[10, 15, 13, 17] ) trace1 = go.Scatter( x=[1, 2, 3, 4], y=[16, 5, 11, 10] ) data = [trace0, trace1] # オフラインでプロット offline.iplot(data, filename = 'basic-line')
このコードでconnected=False
とconnected=True
を切り替えると
- Trueの時 : 5 KB
- Falseの時 : 5.9 MB
と、ファイルサイズが増加することがわかります。
一時的にでもインターネットに接続できる場合や、ファイルサイズを小さくしたい場合にはTrue
を選べば良いと思います。