LoginSignup
0
0

More than 1 year has passed since last update.

plotly で複数のサブプロットを取ってグラフを追加する

Posted at

plotlyの勉強中。メソッドがやたらあって検索すると色々なやり方がヒットして戸惑う……。

plotly で3行・3列のサブプロットを取る。そして、1行1列目、2行2列目、3行3列目に折れ線グラフを追加したいとする。以下の3つはすべて同じ結果。

from plotly.subplots import make_subplots

fig = make_subplots(rows=3, cols=3)

#「折れ線グラフを追加する」メソッド。どのサブプロットに追加するかをrow,colで指定する。
#何も考えずに追加するならこれが一番簡単。
fig.add_scatter(y=[1,3,1], row=1, col=1)
fig.add_scatter(y=[2,2,2], row=2, col=2)
fig.add_scatter(y=[3,1,3], row=3, col=3)
fig.show()
from plotly.subplots import make_subplots

fig = make_subplots(rows=3, cols=3)

#「グラフ」を追加するメソッドに、折れ線グラフを渡す。
fig.add_trace(go.Scatter(y=[1,3,1]), row=1, col=1)
fig.add_trace(go.Scatter(y=[2,2,2]), row=2, col=2)
fig.add_trace(go.Scatter(y=[3,1,3]), row=3, col=3)
fig.show()
from plotly.subplots import make_subplots

fig = make_subplots(rows=3, cols=3)

#複数グラフの追加に対応したメソッド。
#追加するグラフをリストで渡し、どのサブプロットに追加するかをrows,colsで指定する。
#グラフのリスト順とrows, colsのリスト順が対応するように注意すること。
fig.add_traces([
    go.Scatter(y=[1,3,1]),
    go.Scatter(y=[1,1,1]),
    go.Scatter(y=[3,1,3])
],rows=[1,2,3], cols=[1,2,3])
fig.show()

グラフ.png

print_grid() を使うことでサブプロットのグリッドを確認できる。

fig.print_grid()

This is the format of your plot grid:
[ (1,1) x,y ] [ (1,2) x2,y2 ] [ (1,3) x3,y3 ]
[ (2,1) x4,y4 ] [ (2,2) x5,y5 ] [ (2,3) x6,y6 ]
[ (3,1) x7,y7 ] [ (3,2) x8,y8 ] [ (3,3) x9,y9 ]

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0