Dashboarding tools

Just about any Python library can be used to create a “static” PNG, SVG, HTML, or other output that can be pasted into a presentation, sent in an email, published as a figure in a paper, and so on. Many people also want or need to create “live” Python-backed applications or dashboards that a user can interact with to explore or analyze some data. Python offers several libraries for this purpose. The four main tools designed specifically for web-based dashboarding in Python are:

You can see comparisons of these tools in:

There are also other tools that can be used for some aspects of dashboarding as well as many other tasks:

  • Bokeh is a plotting library, a widget and app library, and a server for both plots and dashboards. Panel is built on Bokeh, providing a higher-level toolkit specifically focused on app and dashboard creation and supporting multiple plotting libraries (not just Bokeh).

  • ipywidgets provides a wide array of Jupyter-compatible widgets and an interface supported by many Python libraries, but sharing as a dashboard requires a separate deployable server like Voila.

  • matplotlib supports many different backends, including several native GUI toolkit interfaces such as Qt that can be used for building arbitrarily complex native applications that can be used instead of a web-based dashboard like those above.

  • Bowtie (from Jacques Kvam) allows users to build dashboards in pure Python.

  • flask is a Python-backed web server that can be used to build arbitrary web sites, including those with Python plots that then function as flask dashboards, but is not specifically set up to make dashboarding easier.