zoukankan      html  css  js  c++  java
  • 初识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/

  • 相关阅读:
    Spring(二) Spring装配Bean的几种方式
    Spring(一) Spring配置文件中classpath和classpath*的区别
    学习响应式编程 Reactor (5)
    学习响应式编程 Reactor (4)
    学习响应式编程 Reactor (3)
    学习响应式编程 Reactor (2)
    学习响应式编程 Reactor (1)
    学习Java 8 Stream Api (5)
    学习Java 8 Stream Api (4)
    Spring WebFlux 学习笔记
  • 原文地址:https://www.cnblogs.com/wumingxiaoyao/p/8317862.html
Copyright © 2011-2022 走看看