Tableau vs. Dash Plotly
- Luis Alejandro Bernal
- Apr 1
- 6 min read
Imagine you would like to do an analysis for your current job or business. For this analysis you would like to use graphs, tables, maps and add a layer of interactivity so the users can obtain different insights from your visualizations and obtain valuable information from the business that will help you take informed decisions in the future. Now, the question arises: which business intelligence (BI) visualization tool should I use? Tableau or Dash Plotly? This article will try to attempt to help you answer this question and which visualization tool is more suitable for you.
I am a Sr. Data Engineer for the data integration consultant company Pingahla. Throughout my career, I’ve helped companies to ingest, process and present their data in such a way that helps managers and stakeholders take informed decisions in their businesses. I’ve used Tableau and Dash Plotly to present these results in more than 10 different projects. Additionally, I possess the Tableau Desktop Specialist Certification and the Tableau Certified Associate Consultant Certification. I have my fair share of experience using both tools and I will share to you what are the benefits and downsides of using each of them. Nevertheless, this is just my opinion so take with a grain of salt what I am about to present to you.
The main difference between using Tableau and Dash Plotly is its complexity. Tableau is designed in such a way that the “drag and drop” mechanic plays a huge role while creating visualizations. For example, if you want a sales over time analysis you just drag the time in the column shelve, the sales in the rows shelf and there you have it, a visualization made in less than thirty seconds. You can also select easily what type of graph you would like to use and format it in the style you want.
With Dash Plotly things are not so simple. As these types of visualizations are constructed using the libraries Dash and Plotly from Python, all the frontend and backend of the dashboards are made by writing Python code, that could be a big condition for many people who do not know yet how to program.
As discussed before, speed is also a factor to consider. In Tableau, complex visualization and dashboards may be created in a matter of seconds if you have a clear idea on what you want to create as many of the functionalities are intuitive. This means that if you don’t know exactly how to make something, you can experiment and look around the window and will probably find the answer quite quickly.
In Dash Plotly the story is different. You need to keep writing and testing your code to check its functionality frequently (as with any piece of code). This process is prone to make mistakes easily as just one wrong character can damage your visualization. Patience and attention to detail are key skills that are needed for programming and especially if you are making dashboards. Trouble shooting can also be a challenging task in which seamlessly unimportant things such as indentation of the code can make the difference on running the code successfully or crashing it. If you would like to learn more on how to use the Dash Plotly framework, there is a huge community surrounding Python scripting and specifically for Dash Plotly in Youtube that is the Charming Data channel from Adam Schoreder. Nevertheless, the process is undoubtably slower than it would be in Tableau.
Another factor to consider is the interactivity that Tableau can offer on its dashboards. Suppose you have a dashboard that presents the sales of different products in the USA. The dashboard has a map of the USA on the top and at the bottom is presented the number of sales by product. Imagine you would like to know the number of sales from just one city and not the entire country, normally you would do this using a filter in which you pick a city from a list. However, Tableau offers the option of selecting one city on the map and automatically affects the amount of sales graph by filtering it by the selected city. This process is called a dashboard action, and there are several of them in which you can alter the results of one or several graphs depending on an action made on the target graph. This offers an interesting layer of interactivity that the user can work with to obtain more specific insights during the analysis. Unfortunately, Dash Plotly does not offer this kind of options and different graphs in a dashboard cannot be affected be the action of another graph.
For any data analysis project, it is necessary to do some kind of data processing whether it is light or heavy. In Tableau Desktop and Tableau Public it is possible to make light data processing using table calculations which are several functions that ranges from string and numerical up to date and aggregate functions. These functions, normally, are simple to use and each one of them contain a small description and example to help the user on how to choose them properly. Level of Detail (LOD) calculations are also offered, which are calculations that do not depend on the level of granularity of the view and are executed before dimension filters, measure filters and table calculations (this is one of the most complex topics in Tableau so don’t worry if it doesn’t make a lot of sense to you).
If a heavier data processing wanted to be achieved using Tableau, there is a specific product named Tableau Prep Builder is a tool design to make preparing data easy and intuitive to combine, shape and clean data for analysis in Tableau.
In the case if Dash Plotly, as it is written in Python code there exists a huge number of data processing libraries that can help you do any kind of light or heavy data transformations, like Pandas, Polars and Numpy to name a few. In this aspect Dash Plotly is much more flexible and allows a wide range of possibilities that offers the suits the user for a given situation.
When a dashboard is finally created and you would like to share your findings with the world, with Tableau you can accomplish this by using Tableau Cloud, Tableau Server, Tableau Online or Tableau Reader depending on your specific needs. With Tableau Server you can assign different roles to your colleagues which define what actions they can implement on the dashboards, ranging from Viewer, Explorer and Creator. With Tableau Online, you don’t need to worry about scaling, as Tableau is in charge of handling these kinds of features so that you don’t have to.
With Dash Plotly, as the whole dashboard is written in Python code, it is sufficient to find any kind of script host server that can run the code. There are many alternatives, in the past Heroku was very famous as it offered a free tier for developers. Unfortunately, that is no longer the case. Now, Render is a great alternative to host dashboards design using Dash Plotly as it is free to use. Nevertheless, if heavier computation power is needed or scaling up is also a need, the free tier will not be sufficient and better capabilities should be investigated for payment tiers. You can also deploy your Dash Plotly applications using AWS and if you don’t know how to in Pingala’s YouTube channel there is a video detailing how to do it step by step.
Now regarding the cost of using each BI tool; Tableau is known for being an elevated cost program with subscriptions ranging from $12-$70 USD per user. Tableau Public is a free version of the software in which you can learn almost 90% of the capabilities of the paid version (great for anyone who is planning to learn how to build dashboards with Tableau). But for connecting to databases and sharing the dashboards to the community, a paid version of Tableau is required.
One of the main advantages of the Dash Plotly framework is that is completely free. You can download Python, any Python IDE like Visual Studio and PyCharm, download the required libraries and start creating your own dashboards. As mentioned before, the deployment is also free if you do not require big computational power.
Another advantage of using Dash Plotly is that, as mentioned before, there is a limitless number of libraries that can be used from machine learning process up to web scrapping to the internet, giving a huge potential to the dashboards by being fed by any type of information or algorithm a trait that is not available in Tableau. Tableau does have extensions or plugins that allow to increase the capabilities of the program but is not near to what Python libraries have to offer.
In conclusion, if you are looking for a fast solution to build a dashboard that is not hard to use and are willing to pay a good amount of money to use the product, Tableau could be a good option for good. If you are looking for a much robust solution that may need special capabilities only offer on specific libraries, you already now how to program and prefer a free to use solution, then Dash Plotly is the better option for you.


Comments