この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
プログラミング:python:webアプリケーションフレームワーク:dash:基本構造 [2019/07/15 10:26] sotoyama |
プログラミング:python:webアプリケーションフレームワーク:dash:基本構造 [2019/07/15 13:48] (現在) sotoyama |
||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| + | {{indexmenu_n>2}} | ||
| ===== 基本構造 ===== | ===== 基本構造 ===== | ||
| + | ==== 全体構造 ==== | ||
| + | |||
| <code python> | <code python> | ||
| import dash | import dash | ||
| ライン 39: | ライン 42: | ||
| </code> | </code> | ||
| + | ==== レイアウト ==== | ||
| + | === ブロック === | ||
| + | <code python> | ||
| + | # div要素 | ||
| + | html.Div(children='出力文字列') | ||
| + | </code> | ||
| + | |||
| + | === 見出し === | ||
| + | <code python> | ||
| + | # 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') | ||
| + | |||
| + | </code> | ||
| + | |||
| + | ==== フォーム ==== | ||
| + | <code python> | ||
| + | # ドロップダウン(単一選択) | ||
| + | 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 | ||
| + | ) | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_フォーム.jpg?direct&600 |}} | ||
| + | |||
| + | ==== グラフ ==== | ||
| + | === 棒グラフ === | ||
| + | <code 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': 'Dash Data Visualization', | ||
| + | } | ||
| + | } | ||
| + | ) | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_棒グラフ.jpg?direct&600 |}} | ||
| + | |||
| + | === 折れ線グラフ === | ||
| + | <code python> | ||
| + | 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 | ||
| + | ) | ||
| + | } | ||
| + | ) | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_折れ線グラフ.jpg?direct&600 |}} | ||
| + | |||
| + | === 円グラフ === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | === 帯グラフ === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | === ヒスとグラム === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | === レーダーチャート === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | === 散布図 === | ||
| + | <code python> | ||
| + | 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軸'}, | ||
| + | ) | ||
| + | } | ||
| + | ) | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_散布図.jpg?direct&600 |}} | ||
| + | |||
| + | === 箱ひげ図 === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | |||
| + | === 三角グラフ === | ||
| + | <code python> | ||
| + | </code> | ||
| + | |||
| + | ==== Markdown記法 ==== | ||
| + | <code python> | ||
| + | dcc.Markdown(''' | ||
| + | # 見出し1 | ||
| + | ## 見出し2 | ||
| + | |||
| + | - 箇条書き1 | ||
| + | - 箇条書き2 | ||
| + | - 箇条書き3 | ||
| + | - 箇条書き4 | ||
| + | ''') | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_markdown.jpg?direct&600 |}} | ||
| + | |||
| + | |||
| + | ==== Callback関数 ==== | ||
| + | <code python> | ||
| + | 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) | ||
| + | </code> | ||
| + | {{ :プログラミング:python:webアプリケーションフレームワーク:dash:dash_callback.jpg?direct&600 |}} | ||