美文网首页
plotly dash学习(一)

plotly dash学习(一)

作者: Adiwy | 来源:发表于2019-12-31 10:35 被阅读0次

    plotly Dash可以将我们用plotly画出的图片或者基于地图的展示通过交互式可视化的方式表达出来,我们可以定制Select标签,Radio标签,Input标签,Table表格,Graph图件,Map地图控件等等的一些HTML元素通过传入数据以及控件交互,使得所有要素嵌入到一个单页面中,便于我们去描述一种现象,一篇论文,甚至是一种想法。我先贴出一个官方的demo,详细的解释一下dash的构成,然后再给出一个稍微复杂的demo进行进一步的讲解,show the code

    import dash
    import dash_core_components as dcc
    import dash_html_components as html
    from dash.dependencies import Input, Output
    
    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    
    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    # 初始化一个输入框和一个div标签内容页
    app.layout = html.Div([
        dcc.Input(id='my-id', value='initial value', type='text'),
        html.Div(id='my-div')
    ])
    
    
    @app.callback(
        Output(component_id='my-div', component_property='children'),
        [Input(component_id='my-id', component_property='value')]
    )
    def update_output_div(input_value):
        return 'You\'ve entered "{}"'.format(input_value)
    
    
    if __name__ == '__main__':
        app.run_server(debug=True)
    

    这是一个简单的demo,有一个输入框,一个输出的div,当输入框中的数据改变后,div中的值也跟着改变,现在看一下这个程序的结构。

    external_stylesheets = ['https://codepen.io/chriddyp/pen/bWLwgP.css']
    

    上面这一部分是代表当前页面的CSS,plotly官方有很多自己的css库,也可以自己定制自己的css代码,官方的教程配置链接

    app = dash.Dash(__name__, external_stylesheets=external_stylesheets)
    

    上面这一部分是初始化当前的dash页面

    app.layout = html.Div([
        dcc.Input(id='my-id', value='initial value', type='text'),
        html.Div(id='my-div')
    ])
    

    上面这一部分是初始化当前页面的一些标签元素,如input标签,div标签等等吧,设置元素标签的id,类型等等吧,以及初始化元素的值。

    @app.callback(
        Output(component_id='my-div', component_property='children'),
        [Input(component_id='my-id', component_property='value')]
    )
    def update_output_div(input_value):
        return 'You\'ve entered "{}"'.format(input_value)
    

    上面这一部分为注解执行部分,包括输入部分和输出部分,以及执行的回调函数,输入部分为从哪获取数据数据进行交互,输出部分为将获得的数据进行函数运算后输出的组件,回调函数是获得输入值后进行运算所执行的函数。当前回调函数执行的就是格式化输出我们的输入到input标签中的value。
    这样我们看完Dash App的结构就很清楚了,分为以下3个主要部分:

    1. 页面的CSS元素信息
    2. 页面的HTML要素的信息
    3. 页面的交互执行信息
      我们每次编写一个自己的APP的时候可以按照这个思路来组织我们的APP,每个页面的元素的详细讲解,可能以后逐渐通过各个demo来逐步熟悉。
      程序执行结果如下图:


      image.png

    相关文章

      网友评论

          本文标题:plotly dash学习(一)

          本文链接:https://www.haomeiwen.com/subject/tvzvoctx.html