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

时间:2017-07-07 09:49:52

标签: python jupyter-notebook plotly jupyter plotly-dash

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

各自的优点和缺点是什么?

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

2 个答案:

答案 0 :(得分:49)

免责声明:我写了Dash:)

我建议只尝试这两种方法。短跑大约需要30分钟才能通过tutorial

我还建议退房:

Dash有一些高级功能(更详细地介绍了announcement letter

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

我还发现Plotly文档很清楚开源的确切内容以及数据是否上传到他们或是否可以离线完成绘图?

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

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

  

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

  • Dash是MIT许可的。您可以在自己的服务器或计算机上运行Dash。
  • Dash使用Flask服务器,因此您可以像部署Flask应用程序一样部署Dash应用程序
  • Plotly许可Dash Deployment Server,这是一种可以安装在您自己的基础架构上的服务器产品。 Dash Deployment Server是一个" PaaS"这样可以轻松地在您自己的服务器上部署应用程序,SSO / LDAP身份验证,支持计划等。

答案 1 :(得分:-1)

好吧,对于一个jupyter仪表板是免费的,情节仪表板我会假设使用ploty库,其中jupyter仪表板可以使用你想要的模块/库。我今天刚刚完成了一个jupyter仪表板来汇总来自我们所有CI系统的信息。这非常容易,老实说很有趣。一旦获得一个或两个数据源,可以轻松添加新的或添加新的小部件,同时添加控件小部件。