plotly dash学习(一)

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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 【Dash系列】Python的Web可视化框架Dash(1)---简介【Dash系列】Python的Web可视化框...
    惑也阅读 72,840评论 2 62
  • 浏览器与服务器的基本概念 浏览器(安装在电脑里面的一个软件) 作用: ①将网页内容渲染呈现给用户查看。 ②让用户通...
    云还灬阅读 4,887评论 0 0
  • 前端开发面试题 面试题目: 根据你的等级和职位的变化,入门级到专家级,广度和深度都会有所增加。 题目类型: 理论知...
    怡宝丶阅读 7,408评论 0 7
  • 概要 64学时 3.5学分 章节安排 电子商务网站概况 HTML5+CSS3 JavaScript Node 电子...
    阿啊阿吖丁阅读 13,162评论 0 3
  • 没想到是最后一眼,我回望的时候怎会知道时间如此不饶人。 两个多月前我来到一个陌生的城市去完成我的学业。面对一群...
    可口可乐的乐阅读 1,841评论 0 1

友情链接更多精彩内容