The best tools for Dashboarding in Python
Tags: Plotly, Dashboard, Streamlit, Data Science, Data Visualization

Streamlit

Streamlit Demo — Source

Do you want to create dashboards quickly in Python?. — Streamlit is your best option.

Streamlit revolutionises creating web applications with easy to use API and constant feature development. It was only last year October when this open-source tool was launched and no doubt its popularity has increased rapidly in the data science community.

Today, Streamlit boosts more functionalities with its recent introduction of streamlit component, where the developer community adds new functionalities.

Sharing and Deploying Streamlit apps has also become super easy with the new one-click deploying service from streamlit (In Beta). You can now develop and create web applications and dashboards, and deploy them in minutes rather than days, Thanks to Streamlit.

What I like about streamlit is that it has the shortest learning curve of all Python Dashboard creating tools in this list. It offers simple API with excellent documentation and lets you develop applications with less code in pure python.

In simple terms, Streamlit empowers you to focus on what matters rather than thinking about front-end back-end technology stacks to use for your project.

Panel

Panel Gapminder Demo — Source

Do you want to create powerful and advanced dashboards in Pure Python with declarative and reactive programming? — Panel is your best bet.

Panel is an open-source Python library that lets you create custom interactive web apps and dashboards by connecting user-defined widgets to plots, images, tables, or text.

While it is possible to work Streamlit in Jupyter notebooks, we use primarily with Python files. If your favourite data science tool is Jupyter Notebook, then Panel offers extensive support for all plotting libraries.

The learning curve is steeper than Streamlit. However, it is simple to create an interactive web application in Panel, using less code with widgets and parameters.

Deploying and sharing your web applications and dashboards in Panel is easy. You can display your dashboards inside Jupyter Notebooks, render it as Ipywidgets, run it from the command line, or deploy it using popular tools like Heroku, MyBinder or even other cloud platforms.

Voilà

Voilà Demo — Source.

Do you want to turn your Jupyter Notebooks quickly into standalone web applications? Voilà is for your service.

Voilà — Rendering of live Jupyter notebooks with interactive widgets.

Voilà is primarily a native Jupyter rendering tool. However, you can create interactive reports with widgets in Jupyter notebook using Ipywidgets. You can also use Viola to render any content on Notebooks into Dashboards.

Quick Jupyter notebook deployment into dashboards is the strong side of Viola but also its downside. You can make coherent Dashboards with Voilà, but that needs you to format your experiments and code in Jupyter notebooks accordingly or suppress and hide unused code and markdowns.

Plotly Dash

Plotly Dash Demo — Source

Do you need more advanced and production-grade level dashboards in Python? — Plotly Dash covers that.

Plotly Dash focuses on production and enterprise dashboard creation but also offers free and open-source options in Python, R and Julia. It is the most mature option on this list.

Although Dash empowers users to build and deploy web applications without full-stack and DevOps tools in hours, it has the steepest learning curve of all the options in this article.

That is also changing with the introduction of Plotly Express — easy to use and high-level API for creating figures with Plotly Libary. I find the Plotly Express library one of my favourite data visualisation tools in Python.

Deploying your Plotly Dashboards in your local environment is easy, and you need to deploy it to a server if you need to share it outside.

Final Thoughts

The choice of your dashboard tool depends on your project needs. Streamlit is for creating quick and versatile dashboard apps with an easy learning curve and less code. I find Streamlit the easiest and the best tool out there to create data visualisation web apps.

Viola and Panel serve primarily for Jupyter Notebook users, and you can combine them with any plotting libraries of your choice. Finally, use Plotly Dash for more advanced and production level dashboards.