標籤:figure date reader callback out datetime create admin upd
python dash 的應用首頁,是用一個 k 線圖來做 damo 的,奈何資料來源用的 Google,上不去。當然,可以換 yahoo,但是畢竟國內的還是更親切些。
官方的 demo 用的 pandas_datareader 來擷取資料的,先需要換個可以擷取國內資料的,看了下 tushare 挺好用。
另外,參考 flask ,把 host 改為 0.0.0.0,這樣就不限於用 127.0.0.1 來訪問啦。當然,需要的話,port 也可以換掉。
# -*- coding: utf-8 -*-"""Created on Sun Mar 11 10:16:43 2018@author: Administrator"""import dashfrom dash.dependencies import Input, Outputimport dash_core_components as dcc import dash_html_components as htmlfrom datetime import datetime as dt import tushare as ts app = dash.Dash()app.layout = html.Div([ html.H1(‘k-30‘), dcc.Dropdown( id=‘my-dropdown‘, options=[ {‘label‘: ‘愛柯迪‘, ‘value‘:‘600933‘}, {‘label‘: ‘贛鋒鋰業‘, ‘value‘:‘002460‘}, {‘label‘: ‘中國神華‘, ‘value‘:‘601088‘}, {‘label‘: ‘廣汽集團‘, ‘value‘:‘601238‘}, {‘label‘: ‘春秋航空‘, ‘value‘:‘601021‘}, ], value=‘600933‘ ), dcc.Graph(id=‘my-graph‘)])@app.callback(Output(‘my-graph‘, ‘figure‘), [Input(‘my-dropdown‘, ‘value‘)])def update_graph(selected_dropdown_value): # df = web.DataReader( # selected_dropdown_value, data_source=‘yahoo‘, # start=dt(2018, 1, 1), end=dt.now() # ) df = ts.get_k_data(selected_dropdown_value, ktype=‘30‘) return { ‘data‘:[ { ‘x‘: df.index, ‘y‘:df.close } ] }if __name__ == ‘__main__‘: app.run_server(host="0.0.0.0")
python進階資料視覺效果Dash2