初識Dash -- 構建一個人人都能夠輕松上手的界面,操控數據和可視化


從事數據科學工作,少不了使用Pandas、scikit-learn這些Python生態系統中的利器,還有就是控制工作流的Jupyter Notebooks,沒的說,你和同事都愛用。但是,要想將工作成果分享給不會用這些工具的人,那該怎么辦?怎么才能構建一個人人都能夠輕松上手的界面,操控數據和可視化?以前,為實現這一目的,需要一個精通Javascript的專職前端團隊來搭建GUI,以后就用不着啦。

今年發布的Dash是在純Python環境中構建數據可視化Web APP的開源庫。該庫基於Flask、Plotly.js和React構建,提供抽象層,無需學習上述框架即可快速上手開發。它在瀏覽器中進行渲染和響應,因此適用移動端。

如果你想知道Dash都能實現什么效果,這個樣例庫可以讓你大飽眼福。

 

pip install dash

pip install dash-renderer

pip install dash-html-components

pip install dash-core-components

 

#!/usr/bin/env python
# Version = 3.5.2
# __auth__ = '無名小妖'
import dash
import dash_core_components
import dash_html_components
import numpy

t = numpy.linspace(0, 2 * numpy.pi, 100)
x = 10 * (2 * numpy.sin(t) - numpy.sin(2 * t))
y = 10 * (2 * numpy.cos(t) - numpy.cos(2 * t))

app = dash.Dash()

app.layout = dash_html_components.Div(children=[
    dash_html_components.H1(children='Hello! Dash love you! '),

    dash_core_components.Graph(
        id='heart-curve',
        figure={
            'data': [
                {'x': x, 'y': y, 'type': 'Scatter', 'name': 'Heart'},
            ],
            'layout': {
                'title': 'Heart Curve'
            }
        }
    )
])

if __name__ == '__main__':
    app.run_server(debug=True)

  運行:

 

 

 

 

eg2.

#!/usr/bin/env python
# python2.7
# -*- coding: utf8 -*-
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")

  

 

 

 

其他參考:

http://blog.csdn.net/hu_zhenghui/article/details/78378844

http://blog.csdn.net/zhangjianjaEE/article/details/76572327

https://pypi.python.org/pypi/django-dash/


免責聲明!

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



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