Plotly/Dashでインタラクティブなグラフ作成
ほんの数行のコードで以下のようなグラフができちゃいます。
Bokehより簡単だ、、、
スキャッタープロット
コード
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') |
コメントを残す