Last semester, some students in the data visualization class at the University of Cincinnati presented their final projects. Their final project was mostly done in Tableau, but one of their charts was a sankey diagram and they made the choice to do this one in D3 instead of Tableau. They had a number of options to put this together, but they chose to use deck.js to put it into a single presentation. This was very well done and worked great. I had some additional ideas on how this could be used with Tableau and I filed it away to come back to in the future.
Then a few weeks ago I was trying to solve another problem. I wanted to be able to showcase our Tableau Server at work on a large screen TV set. I wanted something that would scroll through visualizations, like PowerPoint might do by auto-rotating slides. However, I wanted to rotate the Tableau Visualizations themselves, reading from the server, rather than simply taking screen shots (static images) that wouldn't update with data from the server. I immediately thought of deck.js and worked out a solution for this problem. By integrating Tableau into deck.js it offers some distinct advantages that I think people will find very useful.
The primary reason I took such interest in deck.js in the first place was the fact that during a presentation I noticed that all of the slides in deck.js load in order at the beginning, right on the initial load. This makes sense, since all the visualizations are simply embedded into the main HTML page as slides. The load time can be a major problem in Tableau. If you are moving from one tab to another, or one viz to another, there can be considerable load time. Paul Banoub recently blogged about this very same issue here. It's fairly common to be in a meeting and have to wait because the user clicks a tab or opens a new workbook from the server. This would be an even bigger issue for my rotating dashboards.
Imagine having two dozen Tableau workbooks rotating on a large TV screen in the office while it was waiting to load each visualization one at a time. I'm not sure there would be much on the screen other than the Tableau "fruit loop".
I will outline how to do this in another post and provide additional examples and ideas on how this could be used. For now, here's 2 presentations to demonstrate the power of this technique.
Click here to see the presentation with manual interaction. In this version the user will click arrow buttons to navigate from slide to slide.
Click here to see the presentation with auto-rotating slides. In this version the slides will rotate from one to the next every 10 seconds.