Taylor Rodgers
  • Home
  • Books
  • Free Tools
    • Requirement Doc Templates
    • Quality Checking Guide
  • Blogs
    • Data Science
    • R Programming
  • Contact
  • Home
  • Books
  • Free Tools
    • Requirement Doc Templates
    • Quality Checking Guide
  • Blogs
    • Data Science
    • R Programming
  • Contact

Shiny versus Tableau: Which Tool Is Better?

9/18/2021

0 Comments

 
Picture
This visualization was produced within plotly, a popular data viz package used alongside Shiny.

Up until recently, I almost exclusively used Tableau for data visualizations. I believed (and still believe) it's the best data viz tool out there. It works well because you get to see the visualizations as you build them. You hardly have to do any programming within the tool and it doesn't take long to learn how to use it. Once you get enough experience, you can build beautiful dashboards relatively quickly.

Because of this, I never really bothered to learn Shiny. I love R programming, but I didn't think Shiny apps were as practical. "Why do I have to hand-write code to build an interface with data visualizations?" I thought. It seemed like a waste of time when a tool like Tableau allowed you to build visualizations by dragging and dropping and clicking.

But I recently worked on a project that changed my mind. A few months ago, a client approached my employer and asked for a Shiny app. I was the only R programmer available and so I naturally stepped up to use it.

Normally, I would've pushed back on the client and suggested Tableau, but they provided a mock up of what they wanted. I knew right away that we couldn't deliver the requested functionality with Tableau.

And so, despite never using Shiny or knowing what "reactivity" meant, I quickly learned how to use the tool and managed to deliver the app on time.

And I got to say... there's a clear difference in what Tableau and Shiny can do.

Tableau is Better at "Guessing" What You Want

Tableau is great at guessing what you want it to do. With Shiny, you have to tell it exactly what you want it to do. And that's the big difference!

This is both a strength and weakness for Tableau. It allows you to intuitively drag-and-drop pills to put together a bar graph. You can select a color menu and create a palette from a color wheel. There are tool tips already pre-programmed that only require a little editing. You can use containers to space visualizations appropriately and use borders to create clearly defined sections of the dashboard.

Shiny doesn't work like that. At least not in its base form. It's hard to change colors because you have to hand type the color codes. Same with fonts, spacing, etc.

However, Tableau's strength is also a weakness. And vice versa for Shiny.

Clients often ask for more advanced functionality than Tableau can deliver. This doesn't happen that often, but it does happen often enough. When Tableau can't deliver, you're forced to rely on "hacks" to circumvent these limitations. One or two "hacks" work okay, but the more you add, the more performance issues you'll encounter. And these hacks often put a burden on either the developer the stakeholder to maintain over the long run.

Shiny doesn't require "hacks." While I think its UI framing is limited, you can pretty much tell it what to do and when to do it. The only problem is that you have to research the coding required to support those functionalities. And, most importantly, you need a good understanding of R programming beforehand.

Shiny Allows More Specific Functionality

Shiny loses out to Tableau in ease-of-use and aesthetics, but you can get far more ambitious with functionality. Because Shiny operates on R programming and R programming has a wide-range of capabilities, Shiny can do specific things that Tableau can't.

For example, Tableau can only read data. Shiny can both read and write data. This is a limitation I often ran into with Tableau. Quite often, we had to build a separate interface or use Google Sheets to allow end-users to input data. With Shiny, you can build a form for end-user to input data. And more importantly, you can create rules within the form to ensure the end-user inputs the correct data.

You can also transform data more easily within Shiny. While Tableau has great data transformation techniques, it's a lot easier to create precise transformations on a smaller scale that's geared towards an app function or visualization.

And lastly, you can create more advanced interactions with Shiny. When you learn about how to use reactivity and event observations, Shiny allows you to create far more specific interactions than Tableau.

Shiny Allows Statistical and ML Model Integration

Since you build Shiny apps using R programming, it's easy to integrate machine learning models within the app. And if you're a good enough designer, you can use this app to make the model more accessible to a wider audience.

Tableau has some modeling capabilities, but far more limited. Last time I used it, it could only produce a simple linear regression, as well as some other basic models. It's primarily a data visualization tool.

So What's the Better Tool?

Ultimately, I think the tool depends on the audience.

Tableau performs better than Shiny in aesthetics and ease-of-use. With Tableau, you can quickly automate a reporting process and tell great data stories. For that reason, business stakeholders love it and I imagine they'll continue to invest in Tableau (or a similar tool like PowerBI).

Shiny outperforms with its advanced functionality, machine learning integration, and precision programming. You can tell it exactly what to do, but it won't look as pretty.

Because of this, I think Shiny is the best tool for subject matter experts. You can work alongside an engineer or scientist or knowledge-based professional and give them the ability to use a machine learning model to guide their decisions. Because subject matter experts need more advanced functionality and predictive analytics, aesthetics and ease-of-use are less important.
0 Comments



Leave a Reply.

    ABOUT

    Welcome to the R Programming in Plain English blog!

    This blog seeks to demystify the R programming language for those who need it, such as statisticians, academic researchers, data analysts, and data scientists.

    To learn more about this blog, visit here.

      SIGN UP

    Subscribe

    ARCHIVES

    December 2021
    October 2021
    September 2021
    October 2020
    September 2020
    August 2020
    January 2020

    RSS Feed