Python交互式数据分析报告框架~Dash介绍(翻译整理)_python dash

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

用户指南:https://plot.ly/dash/

Dash应用的代码是声明与反应式的,可以轻松构建包含交互元素的复杂应用。下面是一个包含5个输入项,3个输出项和交叉筛选的例子,这个例子只有160行代码,并且都是用Python编写的。

Dash应用:含交叉筛选,多个输入与输出项,仅163行Python代码。查看源码

源码:https://gist.github.com/chriddyp/9b2b3e8a6c67697279d3724dce5dab3c

这个应用中的每个设计元素,如尺寸、位置、颜色及字体,都可以自定义。Dash应用是基于Web构建与发布的,所以完全支持CSS。下面是一个采用了高盛报告风格的、可高度定制及交互的Dash报告。

可高度定制的高盛风格Dash报告,查看源码

源码:https://plot.ly/~jackp/17561/import-dash-from-dashdependencies-impor/

因为是在浏览器中查看Dash应用,所以无需写任何JavaScript或HTML代码,Dash提供了一个调用众多Web交互式组件的Python界面。

简单的Dash滑块组件

Dash还提供了一个简单的响应式装饰器,用于绑定Dash用户界面和数据分析代码。

当输入值发生变化时,比如选择下拉菜单或拖动滑块,Dash的装饰器就会把新输入的值传递给Python代码。

通过新输入的值,Python函数可以筛选Pandas的DataFrame、生成SQL查询语句、运行模拟、执行运算,或开始试验等任何事情。Dash会在UI中为该函数的图形、表格及文本等元素返回新的属性。

下面的例子简要展示了文本框与图形的互动更新,此代码基于当前选定的点,在Pandas的DataFrame中筛选数据。

显示自定义元信息的Dash应用,当鼠标悬停在某个点上时,会筛选Pandas DataFrame中的数据,仅60行代码,查看源码

源码:https://link.jianshu.com/?t=https%3A%2F%2Fgist.github.com%2Fchriddyp%2F1a95f6582a5256db9847086232987bff

在这个Dash应用中,鼠标在图形元素的点上悬停时可以显示相关药物的元信息。当在多选式下拉菜单中添加内容时,此代码还可以向表格中追加行。

分析药品的Dash应用。鼠标悬停在点上时显示药品的描述,在下拉菜单中选择时,会高亮显示药品在视图中的位置,并向下方的表格添加该药品的标识。实现此功能仅需几百行Python代

通过Python组件与响应式函数装饰器这两个抽象层,Dash抽取了构建交互式Web应用所需的技术与协议,让你轻轻松松地用一下午就为Python数据分析代码制作出用户界面。

体系架构

Flask和React

Dash应用是运用Flask与JSON数据包进行HTTP请求通讯的Web服务。Dash的前端渲染器组件使用React.js,这是由Facebook开发与维护的JavaScript用户界面库。

Flask很棒,已被Python社区广泛采用,并部署于众多生产环境中。Dash应用的开发者可以设置Flask的底层实例和属性,高级开发者还可以使用众多的Flask插件扩展Dash应用。

React也很赞,在Plotly,我们用React重写了全部Web平台和在线视图编辑器。React最了不起的一点是它的社区作品众多且个个优秀。React的开源社区已经公布了数以千计的高质量交互式组件,包括下拉菜单、滑块、日历,还有交互式表格。

Dash整合了Flask与React的强大功能,使非专业Web开发的Python数据分析师也可以使用。

从React.js到Python Dash组件

Dash组件是一个编译React组件属性与值,并将之生成JSON序列的Python类。Dash提供了可以将React组件(JavaScript编写的)轻松打包成适于Dash组件的工具集,这个工具集使用动态编程,自动将注释过的React PropType转化为标准的Python类。生成后的Dash组件Python类对用户友好,能进行自动参数验证,并生成字符串。

下列代码是动态生成参数验证的一个例子:

这个是动态生成组件文档字符串的例子:

DIV,IMG,Table等HTML标签由React进行动态渲染,它们的Python类则通过dash_html_componet库生效。下拉菜单、图形、滑块等核心交互式组件由Dash核心团队通过dash_core_components库提供。如果用户自行编写组件库,可使用这两个库调用开源的标准React-to-Dash工具链进行支持。

Dash不捆绑使用标准组件库,Dash组件库可通过核心Dash库单独载入。利用React-to-Dash工具链,用户可以轻松地将React.js组件写入或接入Dash应用的Python类,这里是自制组件库教程。https://link.jianshu.com/?t=https%3A%2F%2Fplot.ly%2Fdash%2Fplugins

当然,你也可以请Dash的核心团队帮忙构建一个组件。

并发-多用户应用

Dash应用的状态储存在前端,比如说浏览器。这就允许Dash应用实现多租户设置:多个用户可以使用独立的会话同时进行Dash应用交互操作。

CSS与默认的样式

核心库没有包含CSS与默认样式,这样做是为了支持模块化和独立版本控制,鼓励Dash应用的开发者自定义应用的界面外观,请在此查阅由Dash核心团队维护的核心样式指南:https://link.jianshu.com/?t=https%3A%2F%2Fcodepen.io%2Fchriddyp%2Fpen%2FbWLwgP

数据可视化

Dash的图形组件使用plotly.js对图形进行渲染,Plotly.js与Dash配合默契,它使用声明式编程模式,开源且速度快,还支持科技计算、金融、商务类的各种视图。Plotly.js基于D3.js构建,支持导出符合出版标准的高清矢量图与优先性能的WebGL视图。

Dash的图形元素与开源的plotly.py库共享同样的语法,开发者可以轻易地在两者之间切换。Dash的图形组件从plotly.js事件系统中钩取信息,允许开发者编写响应在Plotly图形中悬停、点击、选点等操作的应用。

Plotly.js图形组件支持的一些视图类型,更多内容请见plotly.py文档

文档:https://plot.ly/python/

Dash应用示例库中使用plotly.js视图的例子。

开源库

以下资源库中提供了相关代码:

Dash后端:https://github.com/plotly/dash

Dash前端:https://github.com/plotly/dash-renderer

Dash核心组件库:https://github.com/plotly/dash-core-components

Dash HTML组件库:https://github.com/plotly/dash-html-components

Dash组件原型 (React-to-Dash工具链):https://github.com/plotly/dash-components-archetype

Dash文档与使用指南:https://github.com/plotly/dash-docs, https://plot.ly/dash

Plotly.js — Dash使用的图形库:https://github.com/plotly/plotly.js

现有技术

Dash是Python生态系统中的新兵,但支撑它的理念与驱动力已在不同语言和应用中存续了数十年。

如果你是从Excel阵营中转移过来的,那算是来对地方了。Dash与Excel都采用了“响应式”的程序模型。在Excel中,输入单元格发生变化时,输出单元格也会自动更新。所有单元格都可以是输出或输入,也可以同时既是输入也是输出。

输入单元格并不关注那些依赖于它们的输出单元格,这就让添加新的输入单元格或连接一系列单元格变得非常方便。这里是一个Excel “应用”。

下面的例子是用Dash实现的类似Excel的效果。用滑块、输入框、下拉菜单与图形等富Web组件取代Excel中的单元格,用Python代码取代Excel函数或VBA脚本,这就是用Dash重写的Excel表单应用:

(1)Python所有方向的学习路线(新版)

这是我花了几天的时间去把Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。

最近我才对这些路线做了一下新的更新,知识体系更全面了。

在这里插入图片描述

(2)Python学习视频

包含了Python入门、爬虫、数据分析和web开发的学习视频,总共100多个,虽然没有那么全面,但是对于入门来说是没问题的,学完这些之后,你可以按照我上面的学习路线去网上找其他的知识资源进行进阶。

在这里插入图片描述

(3)100多个练手项目

我们在看视频学习的时候,不能光动眼动脑不动手,比较科学的学习方法是在理解之后运用它们,这时候练手项目就很适合了,只是里面的项目比较多,水平也是参差不齐,大家可以挑自己能做的项目去练练。

在这里插入图片描述

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化学习资料的朋友,可以戳这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  • 21
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 是的,有很多关于交互式数据大屏的 Python 案例。 一些常用的库可以制作交互式数据大屏,如 Plotly、Bokeh、Dash。 这些库可以制作多种图表,包括条形图、散点图、折线图等,并且可以与用户进行交互,比如可以动态调整图表的大小、颜色等。 如果你想学习如何制作交互式数据大屏,可以参考官方文档或搜索一些教程。 可以结合您的数据进行实际操作,以便对如何使用这些库有更深入的了解。 ### 回答2: 是的,有许多基于Python交互式数据大屏案例。Python是一种功能强大的编程语言,具有丰富的数据分析和可视化工具。以下是一些常见的交互式数据大屏Python案例: 1. 使用Plotly库创建交互式数据大屏:Plotly是一个用于创建漂亮的交互式图表和数据可视化的库。您可以使用Plotly创建各种图表,如折线图、散点图、热图等,并将其集成到数据大屏中。通过添加事件处理器和交互式控件,用户可以与数据进行交互,探索和分析数据。 2. 使用Dash库创建交互式数据大屏:Dash是一个基于Python的Web应用框架,用于构建交互式数据大屏。您可以使用Dash将数据可视化组件(如图表、表格)和HTML组件结合起来,创建具有交互功能的数据大屏。Dash还提供了丰富的布局和样式选项,使您能够定制数据大屏的外观和布局。 3. 使用Bokeh库创建交互式数据大屏:Bokeh是一个用于构建交互式数据可视化的Python库。它提供了丰富的图表类型和数据可视化工具,支持交互式控件(如滑块、下拉菜单)和回调函数,使用户能够与数据进行互动和探索。 这些案例都是基于Python交互式数据大屏的示例,通过这些工具,您可以根据需要创建交互式和可视化效果丰富的数据大屏。无论是用于数据分析、数据监控、数据展示还是决策支持,这些工具都可以帮助您实现出色的交互式数据大屏项目。 ### 回答3: 是的,有许多交互式数据大屏的Python案例。Python作为一种功能强大且易于使用的编程语言,被广泛应用于数据可视化和大屏展示领域。 其中一个著名的案例是使用PythonDash框架创建交互式数据大屏。Dash是基于React.js和Flask的组合而成的框架,可以帮助用户快速构建交互式数据可视化应用。通过Dash,用户可以使用Python编写代码来定义各种数据图表、数据表格和交互控件,从而构建出具有丰富交互功能的数据大屏。 另一个常见的案例是使用Python的Bokeh库创建交互式数据大屏。Bokeh是一个用于数据可视化的Python库,可以生成具有高度交互性的图形和图表。通过Bokeh,用户可以使用Python语法定义数据图表的各种属性,并为图表添加交互工具(如缩放、平移、选择等),使得用户能够自由地探索和分析数据。 此外,还有其他许多Python库和框架可用于创建交互式数据大屏,如Plotly、Matplotlib和Streamlit等。这些工具可以帮助用户以更直观、可交互的方式展示数据,从而更好地传达信息和洞察力。 总之,交互式数据大屏的Python案例非常丰富,用户可以根据自己的需求和技术水平选择适合自己的库或框架来实现交互式数据大屏。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值