python dash 初探 --- k 線國內版


python dash 的應用首頁,是用一個 k 線圖來做 damo 的,奈何數據源用的 Google,上不去。當然,可以換 yahoo,但是畢竟國內的還是更親切些。

官方的 demo 用的 pandas_datareader 來獲取數據的,先需要換個可以獲取國內數據的,看了下 tushare 挺好用。

另外,參考 flask ,把 host 改為 0.0.0.0,這樣就不限於用 127.0.0.1 來訪問啦。當然,需要的話,port 也可以換掉。

改好的官方 demo 如下:

#!/usr/bin/python
# -*- coding: UTF-8 -*-

import dash
from dash.dependencies import Input, Output
import dash_core_components as dcc 
import dash_html_components as html
from 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")

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM