plotly覚え書き by 具体例
JupyterLabで使う
公式ドキュメントのJupyterLab Support
を参照。
一応手順だけ抜粋しておくと (2021年3月2日現在)
拡張機能のインストール
pip install jupyterlab "ipywidgets>=7.5"
jupyter labextension install [email protected]
jupyter labextension install @jupyter-widgets/jupyterlab-manager [email protected]
上記を入れたうえで、以下の様に普通にプロットすれば、プロットされたグラフをクリック・マウス操作することにより任意のグラフを消したり、拡大縮小したり等、インタラクティブに使える。良い。
Plotly Graph Objects
インポート
import plotly.graph_objects as go
全般
疑似コード
# 空のFigureを作って、
fig = go.Figure()
# add_traceメソッドによりグラフを追加していく。
fig.add_trace(
# go.Barとかgo.Scatterとかの、具体的なグラフのインスタンスをここへ。
)
# 軸の名前、グラフのタイトル、グラフのサイズとかはupdate_layoutメソッドで。
# JupyterLabで表示している場合は、幅はノートブックの幅に勝手に合わせてくれるので、
# heightだけ適当に調整するとよさげ。
fig.update_layout(
xaxis_title='hoge',
yaxis_title='fuga',
title='piyo',
height=500
)
fig.show()
ラインプロット
入力データ1 (df1)
epoch | average_gen_loss | kld | total_loss | |
---|---|---|---|---|
0 | 1 | 1.02231 | 0.924802 | 1.02239 |
1 | 2 | 1.01518 | 1.22425 | 1.01527 |
2 | 3 | 1.01342 | 1.9432 | 1.01357 |
3 | 4 | 1.01169 | 2.33714 | 1.01187 |
4 | 5 | 1.01076 | 2.46732 | 1.01095 |
(以下省略)
入力データ2 (df2)
epoch | average_gen_loss | kld | total_loss | |
---|---|---|---|---|
0 | 1 | 1.02196 | 1.57333 | 1.02208 |
1 | 2 | 1.01388 | 2.00052 | 1.01403 |
2 | 3 | 1.01166 | 2.32075 | 1.01184 |
3 | 4 | 1.01018 | 2.45098 | 1.01037 |
(以下省略)
(※ 別に入力データはデータフレームである必要はない)
コード
# 空のFigureを作って、
fig = go.Figure()
# グラフを追加していく。ラインプロットといいつつScatterを使う必要がある。
fig.add_trace(
go.Scatter(x=df['epoch'], y=df['total_loss'], name='01_vae128_zdim1_seed1')
)
# 追加。
fig.add_trace(
go.Scatter(x=df2['epoch'], y=df2['total_loss'], name='06_vae128_zdim4_seed1')
)
# 軸の名前とかタイトルとかを追加。
fig.update_layout(
xaxis_title='Epoch',
yaxis_title='Total loss'
)
fig.show()
Plotly Express
インポート
import plotly.express as px
ラインプロット
入力データ
epoch | average_gen_loss | kld | total_loss | |
---|---|---|---|---|
0 | 1 | 1.02231 | 0.924802 | 1.02239 |
1 | 2 | 1.01518 | 1.22425 | 1.01527 |
2 | 3 | 1.01342 | 1.9432 | 1.01357 |
3 | 4 | 1.01169 | 2.33714 | 1.01187 |
4 | 5 | 1.01076 | 2.46732 | 1.01095 |
(以下省略)
コード
# とにかくデータフレーム渡して、軸はカラム名を指定すればヨシ
fig = px.line(df, x='epoch', y='total_loss')
fig.show()
ラインプロットを複数
どうも2つ以上のデータフレームを同時にプロットする方法は簡単には見つからない。
(例えば学習曲線がデータフレームに入っているときに、データフレームを複数渡して1つのグラフに重ねてプロットする、とか)
plotly.express ではなくて、plotly.graph_object を使えということかもしれない。
Author And Source
この問題について(plotly覚え書き by 具体例), 我々は、より多くの情報をここで見つけました https://qiita.com/kttn8769/items/92594b0d52282e2959c7著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .