🦔

オフライン環境でplotlyを活用するための基礎(html出力、png出力、インライン描画)

2021/05/26に公開

Plotlyは インタラクティブなグラフをかけるデータ可視化ツールです。
オフライン環境でhtml, pngに出力する方法、jupyterlabにインラインでグラフを出力する方法をまとめました。

環境

  • Ubuntu 20.0.4
  • Python 3.8.10

インストール

グラフをhtml出力するためにplotlyをインストールします。

pip install plotly

次にグラフをpngで保存するためにkaleidoをインストールします。

pip install kaleido

最後にjupyterlabのインラインでグラフを描くためにjupyterlabの拡張機能をインストールします。

pip install jupyterlab
curl -sL https://deb.nodesource.com/setup_14.x -o nodesource_setup.sh
sudo bash nodesource_setup.sh
sudo apt update && install nodejs
jupyter labextension install jupyterlab-plotly@4.14.3

注意する事はnode.jsのバージョンが12.0.0以上であることです。plotly拡張機能が動きません。bashの命令でnode.jsのインストールバージョンを12.0.0以上にしています。

オフラインでhtml出力

plotly.offline.plot()でhtml出力されます。

import numpy as np
import plotly.graph_objects as go
from plotly import offline

X = np.linspace(-np.pi, np.pi, 100)
Y = np.sin(X)

fig = go.Figure()
trace = go.Scatter(x=X, y=Y)
fig.add_trace(trace)
fig.update_layout(title="y=sin(x)")
offline.plot(fig)

実行するとグラフがhtmlで出力されます。

オフラインでpng出力

plotly.io.pio(engine="kaleido)でpng出力されます。

import plotly.io as pio
import kaleido

pio.write_image(fig, "sin.png", engine="kaleido")

解像度が低めですがpng出力されます。

インラインでグラフ描画

plotly.offline.iplot()でインライングラフを描けます。

offline.iplot(fig)

セルの下にインラインでグラフが描かれます。

参考

おまけ

Windowsではkaleidoの代わりにorca.exeが使えます。
orca.exeをインストール後、plotlyの設定ファイルを変更します。

pip install plotly
pip install psutil
pio.orca.config.executable="path/to/orca.exe"
pio.orca.config.save()

Discussion