Looking for:
- Python backend
- Web frontend
- Dashboard UI: No code needed in frontend
- Dashboard UI: Multiple linked visualizations
- Extensible
- Performant with large datasets
- Open source
(Links from these have been followed below.)
- "I wish there was some abstraction to generate a Dash like output from Jupyter": April, 2018
- "notes from our discussion on dashboarding at the ipywidgets workshop": March 24, 2018
- "how dashboarding could be accomplished in JupyterLab": Feb 7, 2017
- github (121 stars, 16 forks, 4 contributors, last commit Mar 24, 2019)
A JupyterLab extension for rendering Plotly Dash apps as a separate window
- github (2100 stars, 307 forks, 31 contributors, last commit today)
BeakerX is a collection of JVM kernels and interactive widgets for plotting, tables, autotranslation, and other extensions to Jupyter Notebook.
Panel is novel in that it supports nearly all plotting libraries, works just as well in a Jupyter notebook as on a standalone secure web server, uses the same code for both those cases, supports both Python-backed and static HTML/JavaScript exported applications
A project under pyviz: "PyViz is a coordinated effort to make data visualization in Python easier to use, easier to learn, and more powerful."
- github (205 stars, 35 forks, 5 contributors, last commit Mar 13, 2019)
Jupyter extension
When a notebook is opened in appmode, all code cells are automatically executed. In order to present a clean UI, all code cells are hidden and the markdown cells are read-only."
- readthedocs
- github (900 stars, 174 forks, 17 contributors, last commit Aug 30, 2018)
Inactive: Jupyter extension. Cells can be arranged in grids, rather than occupying the full width. Project had initial funding from IBM, then lost energy.
Easy drag-and-drop layout of cell outputs in a grid, one-click publish, secure execution of the notebook by not accepting code execution from the browser.
- github (169 stars, 23 forks, 5 contributors, last commit Apr 5, 2019)
- binder demo
Alternate notebook server
- By default, voila disallows execute requests from the front-end, disabling the ability to execute arbitrary code.
- By defaults, voila runs with the strip_source option, which strips out the input cells from the rendered notebook.
- readthedocs
- github (77 stars, 18 forks, 11 contributors, last commit Mar 8, 2019)
Javascript library: Code snippets in HTML are sent to JupyterLab for eval, and the results are shown. Not sure if communication between separate components in HTML is possible.
Alternative notebook system. One superficial difference is that you can set a width (0-12) on cells, and it will float successive cells into the remaining space, allowing dashboard-style interfaces out of the box.
- readthedocs
- github (645 stars, 54 forks, 3 contributors, last commit Feb 10, 2019)
- gallery
Bowtie is a library for writing dashboards in Python. No need to know web frameworks or JavaScript, focus on building functionality in Python.
Bokeh vs. Dash: January 30, 2018
I would use Dash by default:
- it uses plotly for python which makes it very powerful
- it uses React on the frontend which makes it easy add components
- I coded more easily on Dash than on Bokeh, which confirms the opinion of other users I cited
If you’re still unsure about which one to choose:
- Do a POC on Dash of your most critical features
- Do a POC on Bokeh if you got blocked by a lack of interactions between graphs (like panning multiple graphs at the same time)
- Then decide if you want to sacrifice some features to use Dash or if you’re fine with Bokeh
Shiny vs. Dash: March 6, 2019
Shiny is a sleek, feature rich framework. It lowers the barrier to entry for creating rich interactive web apps but is also hackable, for those who want to build something complex and customized and who have the will to hammer though. The Shiny community is awesome.
Dash is pretty new and still a little rough around the edges. It was built to be customized, so those who love hacking and tweaking may find a friend in Dash. And since it is built on Python and Flask, the ecosystem available for use in Dash apps is already huge.
Zeppelin vs. Jupyter: March 25, 2017
As far as I see, for now Zeppelin doesn’t cover all Jupyter’s features and possibilities, also it is not so stable and popular among analytic users. But already now Zeppelin shows that it is designed for enterprise users – thus it has great LDAP integration feature, permissions management system and so on.