Dash by Plotly 与 Jupyter Dashboards 的优缺点是什么?

What are the pros and cons of Dash by Plotly vs Jupyter Dashboards?

Dash by Plotly looks like a great way for a Python developer to create interactive web apps without having to learn Javascript and Front End Web development. Another great project with similar aims and scope is Jupyter Dashboards.

各自的优缺点是什么?

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

嗯,对于一个 jupyter 仪表板是免费的,我假设 ploty 仪表板使用 ploty 库,而 jupyter 仪表板可以使用任何 modules/libraries 你想要的东西。我今天刚刚完成了一个 jupyter 仪表板,用于汇总来自我们所有 CI 系统的信息。这非常简单,而且真的很有趣。一旦您获得一个或两个数据源,发现添加一个新数据源或添加一个新小部件与添加控件小部件一样容易。

免责声明:我写了 Dash :)

我建议只尝试两者。通过 tutorial.

,Dash 大约需要 30 分钟才能到达 运行

我还建议您查看:

Dash 有一些高级功能(这些在 announcement letter 中有更详细的介绍)

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

I also found the Plotly documentation quite unclear on what exactly is Open Source and whether the data gets uploaded to them or if the plotting can be done offline?

听起来这是指用于创建图表的 plotly.py graphing library. This is a separate library than Dash. Both libraries use the MIT licensed plotly.js 库。 plotly.js 不会向 plotly 服务器发送任何数据 - 它完全是客户端。

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

In particular in a multi-user deployment? There are clearly two modes for the underlying Plotly library but what mode does Dash operate in?

  • Dash 获得麻省理工学院许可。您可以 运行 在您自己的服务器或您的机器上运行 Dash。
  • Dash 使用 Flask 服务器,因此您可以像部署 Flask 应用程序一样部署 Dash 应用程序
  • Plotly 许可 Dash Enterprise,一个可以安装在您自己的基础架构上的平台。 Dash Enterprise "PaaS" 可让您轻松地在自己的服务器上部署应用程序、SSO/LDAP 身份验证、额外的设计功能、额外的应用程序功能等。