• Skip to main content

学習記録

Plotly/Dashでインタラクティブグラフ作成

2018年9月6日 by 河副 太智 Leave a Comment

Plotly/Dashでインタラクティブなグラフ作成
ほんの数行のコードで以下のようなグラフができちゃいます。

Bokehより簡単だ、、、

Contents

  • 1 スキャッタープロット
    • 1.1 コード
  • 2 スキャッタープロット装飾後
    • 2.1 コード
  • 3 線グラフ
    • 3.1 コード
  • 4 複数の線グラフ
    • 4.1 コード

スキャッタープロット

コード

1
2
3
4
5
6
7
8
9
10
import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
 
np.random.seed(42)
random_x = np.random.randint(1,101,100)
random_y = np.random.randint(1,101,100)
 
data = [go.Scatter(x=random_x, y=random_y, mode="markers")]
pyo.plot(data,filename="scater.html")

 

スキャッタープロット装飾後

コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import numpy as np
import plotly.offline as pyo
import plotly.graph_objs as go
 
np.random.seed(42)
random_x = np.random.randint(1,101,100)
random_y = np.random.randint(1,101,100)
 
data = [go.Scatter(x=random_x,
                   y=random_y,
                   mode="markers",
                   marker=dict(
                       size=12,
                       color="rgb(51,204,153)",
                       symbol="pentagon",
                       line= {"width":2}
                   ))]
 
 
layout = go.Layout(title="hello first plot",
                  xaxis=dict(title="My Y axis"),
                  yaxis=dict(title="My Y axis"),
                  hovermode="closest")
fig=go.Figure(data=data,layout=layout)
pyo.plot(fig,filename="scater2.html")

 

線グラフ

 

コード

線グラフは上記のスキャッタープロットと同じように
go.Scatter()内にmode = ‘lines’を追加する

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
import plotly.offline as pyo
import plotly.graph_objs as go
import numpy as np
 
np.random.seed(56)
x_values = np.linspace(0, 1, 100) # 100 evenly spaced values
y_values = np.random.randn(100)   # 100 random values
 
 
trace1 = go.Scatter(
    x = x_values,
    y = y_values,
    mode = 'lines'
)
 
data = [trace1]  # assign traces to data
layout = go.Layout(
    title = 'Line chart showing three different modes'
)
fig = go.Figure(data=data,layout=layout)
pyo.plot(fig, filename='line0.html')

 

複数の線グラフ

 

コード

mode = ‘markers’
mode = ‘lines+markers’
mode = ‘lines’

の3種類を並べてみます
y_valueに+5、0、-5をそれぞれ加えて位置をずらしています。
name=”〇〇”と記述するとグラフの名称が表示されるようになります。

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import plotly.offline as pyo
import plotly.graph_objs as go
import numpy as np
 
np.random.seed(56)
x_values = np.linspace(0, 1, 100) # 100 evenly spaced values
y_values = np.random.randn(100)   # 100 random values
 
# create traces
trace0 = go.Scatter(
    x = x_values,
    y = y_values+5,
    mode = 'markers',
    name = 'markers'
)
trace1 = go.Scatter(
    x = x_values,
    y = y_values,
    mode = 'lines+markers',
    name = 'lines+markers'
)
trace2 = go.Scatter(
    x = x_values,
    y = y_values-5,
    mode = 'lines',
    name = 'lines'
)
data = [trace0,trace1,trace2]  # assign traces to data
layout = go.Layout(
    title = 'Line chart showing three different modes'
)
fig = go.Figure(data=data,layout=layout)
pyo.plot(fig, filename='line1.html')

 

このエントリーをはてなブックマークに追加

Tweet
[`yahoo` not found]
このエントリーを Google ブックマーク に追加
LinkedIn にシェア
LINEで送る


Filed Under: Plotly/Dash

Reader Interactions

コメントを残す コメントをキャンセル

メールアドレスが公開されることはありません。 ※ が付いている欄は必須項目です

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in