Dash by Plotly vs Jupyter Dashboards 的优缺点是啥? [关闭]
Posted
技术标签:
【中文标题】Dash by Plotly vs Jupyter Dashboards 的优缺点是啥? [关闭]【英文标题】:What are the pros and cons of Dash by Plotly vs Jupyter Dashboards? [closed]Dash by Plotly vs Jupyter Dashboards 的优缺点是什么? [关闭] 【发布时间】:2017-12-11 13:46:19 【问题描述】:Dash by Plotly 看起来是 Python 开发人员创建交互式 Web 应用程序而无需学习 javascript 和前端 Web 开发的好方法。另一个具有相似目标和范围的伟大项目是Jupyter Dashboards。
各有什么优缺点?
特别是在多用户部署中?我还发现 Plotly 文档非常不清楚究竟什么是开源以及数据是否上传到他们,或者绘图是否可以离线完成?底层 Plotly 库显然有两种模式,但 Dash 是在什么模式下运行的?
【问题讨论】:
此评论将 plotly.py 与 matplotlib 进行比较。 OP 的问题是关于Dash 和Jupyter Dashboards:Dash 用于创建交互式网络应用程序,plotly.py 用于绘图。它们是具有不同目的的独立库! Dash 使用 plotly.js 作为它的核心 Graph 组件,但 matplotlib 也可以通过dash_html_components.Img
组件使用。
【参考方案1】:
免责声明:我写了 Dash :)
我建议您尝试这两种方法。 Dash 大约需要 30 分钟才能通过tutorial。
我也建议退房:
Dash announcement letter。这是对 Dash 的全面介绍,包括示例、架构和关于许可 (MIT) 的讨论。 Dash App Gallery 中的 Dash 应用程序的实时示例Dash 有一些高级特性(这些在announcement letter 中有更详细的介绍)
> Dash 应用程序只需很少的样板即可开始使用 - 一个简单的“hello world”Dash 应用程序,它根据下拉列表的值动态显示图表,不到 50 行代码。 Dash 应用程序完全由 Python 生成,甚至是 HTML 和 JS Dash 应用通过响应式 Dash“callbacks
”将交互式组件(下拉菜单、图表、滑块、文本输入)与您自己的 Python 代码绑定。
Dash 应用程序是“反应式”的,这意味着很容易推理具有多个输入、多个输出以及依赖于其他输入的输入的复杂 UI。
Dash 应用程序本质上是多用户应用程序,因为应用程序的“状态”完全在客户端中:多个用户可以查看应用程序并拥有独立的会话。
由于 Dash 具有传统的无状态后端,因此可以通过扩展工作进程的数量来轻松扩展应用程序以服务成百上千的用户。请求会发送给任何可用的工作人员,从而使少数工作人员能够为更多的会话提供服务。
Dash 使用 React.js 渲染组件,并包含一个 plugin system 用于使用 React 创建您自己的 Dash 组件。
Dash 的Graph
组件是交互式的,允许 Dash 应用程序作者编写响应悬停、单击或选择图表上的点的应用程序。
我还发现 Plotly 文档对于究竟什么是开源以及数据是否上传到它们或者是否可以离线完成绘图非常不清楚?
听起来这是指plotly.py
图形库。这是一个独立于 Dash 的库。这两个库都使用 MIT 许可的 plotly.js
库来创建图表。 plotly.js
不会向 plotly 服务器发送任何数据 - 它完全是客户端。
plotly.py
库包括将数据发送到您的在线 plotly 帐户以用于托管、共享和编辑图表的方法,但它完全是可选的。同样,plotly.py
是一个独立于 Dash
的库。 plotly.py
用于交互式绘图,Dash
用于创建交互式应用程序(可以包括图表)。
Dash 已获得 MIT 许可。您可以在自己的服务器或机器上运行 Dash。 Dash 使用 Flask 服务器,因此您可以像部署 Flask 应用一样部署 Dash 应用 Plotly 许可Dash Enterprise,这是一个可以安装在您自己的基础架构上的平台。 Dash Enterprise 是一种“PaaS”,可让您轻松地在您自己的服务器上部署应用、SSO/LDAP 身份验证、附加设计功能、附加应用功能等等。特别是在多用户部署中?底层 Plotly 库显然有两种模式,但 Dash 是在什么模式下运行的?
【讨论】:
太好了,克里斯……你的产品有什么缺点?你看到他们了吗? Dash 应用程序只需很少的样板文件即可上手 - 一个简单的“hello world”Dash 应用程序不到 50 行代码。所以,对我来说,每个样板文件只有 49 行1 行代码似乎是相当多的样板文件。 已更新 - 它不仅仅是打印“Hello World”,它实际上是在创建和运行一个 Web 应用程序,该应用程序从下拉列表中动态呈现图形。【参考方案2】:对于一个 jupyter 仪表板是免费的,我假设 ploty 仪表板使用 ploty 库,因为 jupyter 仪表板可以使用您想要的任何模块/库。我今天刚刚完成了一个 jupyter 仪表板,用于汇总来自我们所有 CI 系统的信息。这非常容易,而且真的很有趣。一旦您找到一两个数据源,就可以轻松添加新的数据源或添加新的小部件以及添加控件小部件。
【讨论】:
这两个项目都是完全免费的和操作系统。事实上,所有代码都在 github 上,你可以贡献 - 他们非常接受拉取请求。我不隶属于 plotly,但我非常尊重他们为社区所做的事情。从您的回答中,人们可能会认为 plotly dash 不是免费的,这是错误的。他们确实提供咨询服务,但很多人很乐意接受您的 Jupyter 咨询服务 很高兴知道。我看到了一些关于 plotty 仪表板定价的信息,可能是托管或其他什么,我不知道。我再看一下,因为将笔记本用于仪表板有点像圆孔中的方钉。谢谢。以上是关于Dash by Plotly vs Jupyter Dashboards 的优缺点是啥? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
基于Jupyter Lab的Dash应用开发环境部署实践及问题解决
基于Jupyter Lab的Dash应用开发环境部署实践及问题解决
Plotly-Dash:- 文件上传后在 plotly dash 中进行多列过滤