Plotlyとは?
Pythonのグラフ描画ライブラリーで描画したグラフの拡大縮小,軸のスケールの変更などなどができる.
Plotlyのグラフ描画モジュールにはexpressとgraph_objectsがあるらしいが,基本はgraph_objectsでexpressモジュールはサクッとグラフを書くためのモジュールで内部ではgraph_objectsの関数を呼んでいるらしい.(公式ドキュメントPlotly Expressの雑和訳)
今回はexpressでサインカーブを書いてみる.
graph_objectsでの描写はこちら→
ibetoge.hatenablog.com
plotly.expressでとりあえず描く
環境 macOS,python 3.7.6,Plotly 4.14.3
Plotlyがない人はターミナルで下のコマンドを叩いてインストール.
$ pip install plotly
モジュールをインポートする.
import numpy as np import plotly.express as px
t = np.linspace(0, 4*np.pi, 100) sint = np.sin(t)
#グラフのインスタンスを作成 fig = px.line(x=t, y=sint) #グラフをブラウザーで表示 fig.show()
グラフの軸に名前を設定するには,インスタンス作成時に
fig = px.line(x=t, y=sint, labels={'x': r"$t$", 'y': r"$\sin t$"})
とすればOK.ここでr"$\sin t$"とかのr"$$"の部分ですが,Plotlyで文字列にLatex数式を使うときはr"$$"を使用します.
もっとしっかり目盛りなども設定したい人向け→
Plotlyのグラフをファイルに保存する
fig.show()
を用いると,実行した際に動かせるグラフがブラウザーに表示されるが,グラフをhtmlファイルとして保存したい場合は,
#htmlで保存 fig.write_html("figure.html")
でOK.画像ファイルとして保存するには,kaleidoパッケージが必要なので,次のどちらかのコマンドを叩いてkaleidoをインストールする.(kaleidoの代わりにorcaパッケージでも良いらしいが非推奨)
pipの場合
$ pip install -U kaleido
anacondaの場合
$ conda install -c conda-forge python-kaleido
kaleidoをインストールしたら,
#pngで保存 fig.write_image("figure.png") #jpegで保存 fig.write_image("figure.jpeg")
と書けばすれば良し.こうすれば保存したhtmlファイルをブラウザで開けばいつでも動かせるグラフが見られる.もちろん画像ファイルとして保存した場合は動かせない.
最後にソースコード
import plotly.express as px import numpy as np # 横軸は0<t<4pi,グラフはsin(t) t = np.linspace(0, 4*np.pi, 100) sint = np.sin(t) # グラフのインスタンス作成(軸ラベル付き) fig = px.line(x=t, y=sint, labels={'x': r"$t$", 'y': r"$\sin t$"}) fig.update_xaxes(title="t") fig.update_yaxes(title=r"$\sin t$") # グラフをブラウザーに表示 fig.show() # htmlで保存 fig.write_html("figure.html")