46

Dash by Plotly看起来是 Python 开发人员无需学习 Javascript 和前端 Web 开发即可创建交互式 Web 应用程序的好方法。另一个具有类似目标和范围的伟大项目是Jupyter Dashboards

各自的优缺点是什么?

特别是在多用户部署中?我还发现 Plotly 文档非常不清楚究竟什么是开源以及数据是否上传到他们,或者绘图是否可以离线完成?底层 Plotly 库显然有两种模式,但 Dash 以什么模式运行?

4

2 回答 2

81

免责声明:我写了 Dash :)

我建议只尝试它们。Dash 大约需要 30 分钟来完成教程

我还建议检查一下:

  • Dash 公告信。这是对 Dash 的全面介绍,包括示例、架构和关于许可 (MIT) 的讨论。
  • Dash 应用程序库中的 Dash 应用程序的实时示例

Dash 有一些高级功能(这些在公告信中有更详细的介绍)

  • Dash 应用程序只需要很少的样板即可开始 - 一个简单的“hello world”Dash 应用程序,它根据下拉列表的值动态显示图表,代码不足 50 行。
  • Dash 应用程序完全由 Python 生成,甚至是 HTML 和 JS
  • Dash 应用程序通过响应式 Dash " callbacks" 将交互式组件(下拉菜单、图形、滑块、文本输入)与您自己的 Python 代码绑定。
  • Dash 应用程序是“反应式”的,这意味着很容易推理具有多个输入、多个输出和依赖于其他输入的输入的复杂 UI。
  • Dash 应用程序本质上是多用户应用程序,因为应用程序的“状态”完全在客户端中:多个用户可以查看应用程序并拥有独立的会话。
  • 由于 Dash 具有传统的无状态后端,因此可以通过扩展工作进程的数量来轻松扩展应用程序以服务成百上千的用户。请求被发送到任何可用的工作人员,使少数工作人员能够为大量会话提供服务。
  • Dash 使用React.js来渲染组件,并包含一个插件系统,用于使用 React 创建您自己的 Dash 组件。
  • Dash 的Graph组件是交互式的,允许 Dash 应用程序作者编写响应悬停、单击或选择图表上的点的应用程序。

我还发现 Plotly 文档非常不清楚究竟什么是开源以及数据是否上传到他们,或者绘图是否可以离线完成?

听起来这是指plotly.py图形库。这是一个独立于 Dash 的库。这两个库都使用 MIT 许可plotly.js库来创建图表。plotly.js不向情节服务器发送任何数据 - 它完全是客户端。

plotly.py库包括将数据发送到您的在线绘图帐户以托管、共享和编辑图表的方法,但它完全是可选的。同样,plotly.py是一个单独的库,而不是Dash. plotly.py用于交互式绘图,Dash用于创建交互式应用程序(可以包括图表)。

特别是在多用户部署中?底层 Plotly 库显然有两种模式,但 Dash 以什么模式运行?

  • Dash 已获得 MIT 许可。您可以在自己的服务器或机器上运行 Dash。
  • Dash 使用 Flask 服务器,因此您可以像部署 Flask 应用程序一样部署 Dash 应用程序
  • Plotly 许可Dash Enterprise,这是一个可以安装在您自己的基础架构上的平台。Dash Enterprise 是一种“PaaS”,可以轻松在您自己的服务器上部署应用程序、SSO/LDAP 身份验证、附加设计功能、附加应用程序功能等。
于 2017-07-10T15:07:58.657 回答
-7

好吧,对于一个 jupyter 仪表板是免费的,ploty 仪表板我会假设使用 ploty 库,因为 jupyter 仪表板可以使用您想要的任何模块/库。我今天刚刚完成了一个 jupyter 仪表板,用于汇总来自我们所有 CI 系统的信息。这非常容易,而且真的很有趣。一旦您找到一两个数据源,就可以轻松添加新的数据源或添加新的小部件以及添加控件小部件。

于 2017-07-07T23:56:45.273 回答