import dash import dash_core_components as dcc import dash_html_components as html # 外部スタイルシート external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css'] # Dashアプリケーション生成 app = dash.Dash(__name__, external_stylesheets=external_stylesheets) # HTMLレイアウト設定 app.layout = html.Div(children=[ html.H1(children='Hello Dash'), html.Div(children=''' Dash: A web application framework for Python. '''), # グラフ表示 dcc.Graph( id='example-graph', figure={ 'data': [ {'x': [1, 2, 3, 4, 5], 'y': [2, 1, 3, 6, 8], 'type': 'bar', 'name': 'XXXX'}, {'x': [1, 2, 3, 4, 5], 'y': [4, 9, 5, 6, 1], 'type': 'bar', 'name': 'YYYY'}, ], 'layout': { 'title': 'Sample Graph Data' } } ) ]) # アプリケーションサーバ起動 if __name__ == '__main__': app.run_server(debug=True)
# div要素 html.Div(children='出力文字列')
# h1要素 html.H1(children='見出し1') # h2要素 html.H2(children='見出し2') # h3要素 html.H3(children='見出し3') # h4要素 html.H4(children='見出し4') # h5要素 html.H5(children='見出し5')
# ドロップダウン(単一選択) dcc.Dropdown( options=[ {'label': '佐藤', 'value': 'sato'}, {'label': '鈴木', 'value': 'suzuki'}, {'label': '田中', 'value': 'tanaka'}, ], value='suzuki' ), html.Br(), # ドロップダウン(複数選択) dcc.Dropdown( options=[ {'label': '佐藤', 'value': 'sato'}, {'label': '鈴木', 'value': 'suzuki'}, {'label': '田中', 'value': 'tanaka'}, ], value=['sato', 'suzuki'], multi=True ), html.Br(), # ラジオボタン dcc.RadioItems( options=[ {'label': '佐藤', 'value': 'sato'}, {'label': '鈴木', 'value': 'suzuki'}, {'label': '田中', 'value': 'tanaka'}, ], value='suzuki' ), html.Br(), # チェックボックス dcc.Checklist( options=[ {'label': '佐藤', 'value': 'sato'}, {'label': '鈴木', 'value': 'suzuki'}, {'label': '田中', 'value': 'tanaka'}, ], value=['suzuki', 'tanaka'] ), html.Br(), # テキストボックス dcc.Input(value='佐藤', type='text'), html.Br(), # スライダー dcc.Slider( min=0, max=5, marks={i:str(i) for i in range(1,6)}, value=3 )
dcc.Graph( id='example-graph', figure={ 'data': [ {'x': [1, 2, 3, 4, 5], 'y': [2, 1, 3, 6, 8], 'type': 'bar', 'name': 'XXXX'}, {'x': [1, 2, 3, 4, 5], 'y': [4, 9, 5, 6, 1], 'type': 'bar', 'name': 'YYYY'}, ], 'layout': { 'title': 'Dash Data Visualization', } } )
import plotly.graph_objs as go # ~~~ 省略 ~~~ dcc.Graph( id='sample-line', figure={ 'data':[ go.Scatter( x=[1, 2, 3, 4, 5, 6], y=[2, 4, 6, 8, 10, 12], mode='lines', opacity=0.7, marker={ 'size':15 }, name='XXXX' ), go.Scatter( x=[1, 2, 3, 4, 5, 6], y=[5, 10, 8, 16, 11, 20], mode='lines', opacity=0.7, marker={ 'size':15 }, name='YYYY' ) ], 'layout': go.Layout( xaxis={'title':'x軸'}, yaxis={'title':'y軸'}, width=1000, height=500 ) } )
import plotly.graph_objs as go # ~~~ 省略 ~~~ dcc.Graph( id='sample-scatter', figure={ 'data':[ go.Scatter( x=[1, 4, 6, 9], y=[10, 30, 20, 25], mode='markers', opacity=0.7, marker={ 'size':15 }, name='グループ1' ), go.Scatter( x=[2, 8, 5, 1], y=[5, 19, 12, 20], mode='markers', opacity=0.7, marker={ 'size':15 }, name='グループ2' ) ], 'layout':go.Layout( xaxis={'title':'x軸'}, yaxis={'title':'y軸'}, ) } )
import dash import dash_core_components as dcc import dash_html_components as html from dash.dependencies import Input, Output # ~~~ 省略 ~~~ app.layout = html.Div([ dcc.Input(id='input-div', value='initial value', type='text'), html.Div(id='output-div') ]) @app.callback( Output(component_id='output-div', component_property='children'), [Input(component_id='input-div', component_property='value')] ) def update(input_value): return 'You entered {}'.format(input_value)