python高级数据可视化Dash2

k 线国内版

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 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")

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值