Apr 302013


I was stuck earlier this month trying to cajole Tableau into doing something I needed it to do so I contacted my friend Joe Mako.  When it comes to Tableau, Joe is the “guru’s guru.” (Joe was the person that showed me how to create filled maps in Tableau before Tableau had native support for this. See http://www.datarevelations.com/tracking-stds-hiv-and-aids-in-texas.)

Joe did in fact have a very slick solution to my problem and I will probably write about in a future post but I would rather focus on a broader issue that came about when Joe commented on a visualization I had on my screen.

Vertical Scatterplot

Consider the image below which readers may recall from a post I did awhile back on getting people to care about your viz.

The size of the circle corresponds to number of respondents reporting a salary close to the amount shown.

The red circle shows “your” salary and the other circles show the salaries of everyone else that responded to the survey. The size of the circle indicates the number of respondents that reported earning a particular salary.

There are a number of problems that I had with this approach, the biggest being that I had to group / bin salary amounts so that similar amounts would yield bigger circles.  That is, I would run into troubles with salary amounts like these…




… as they would yield three separate small circles instead of one larger circle.

Here’s what the visualization looks like if you plot a circle for each response ID and don’t size the circles based on number of occurences of a particular salary value.

A vertical scatterplot with too many dots.

Our problem is that we cannot glean the clustering as we have so many marks that are stacked in a single column.

Cue the Violins

Joe, who in addition to Tableau expertise is a font of generalized visualization knowledge, asked if I had ever heard of a violin plot (I had not). He then pointed me to this blog post.

In addition to the violin plot, the post discussed “jittering” marks so that you spread dots both horizontally and vertically, like this:

“Jittering” the scatterplot

Joe pointed out that producing this jitter effect was very simple in Tableau.  You just need to create an x-y chart where the y-axis contains the salary for each respondent and the x-axis displays the index value (the row number) for the particular response.  Interestingly, it is because there is no relationship between the response ID and the salary value that the INDEX() function essentially randomizes the responses and scatters marks across the x-axis.  If you were to sort the IDs by salary you would get an interesting chart, but one that makes the clustering harder to see.

You say potato and I say “Pareto”

Creating the Visualization

The screen shot below shows the main components that go into the visualization.  We have placed the INDEX() function on the Columns shelf and AVG(Salary) on the Rows shelf (note that it will work fine with SUM or even without an aggregation).

Notice that we are coloring by Gender and that ID is on the Level of Detail

Note that ID is on the level of detail.  This is what produces a separate circle for each salary respondent.  We also Compute by ID in the Index() table calculation.

Compute using ID

The only thing left to do is resize the visualization so that it is very narrow.

Here’s the Tableau dashboard showing both the “jittered” scatterplot and your salary as a separate dot.

(I will leave it as an exercise for the reader to download and see how to display the dot.)

Apr 072013

Bob Dylan – folk hero to thousands if not millions  – caused a furor when he appeared at the 1965 Newport Folk Festival with … an electric guitar!

If you read about the incident you’ll discover that there was a mammoth sense of betrayal within the folk-centric fold.  How could their hero embrace rock music?

I thought about this musical misstep / milestone when I first read Stephen Few’s rant over Tableau “veering from the path” for allowing two unworthy visualization types and one unworthy visualization implementation to sully Tableau’s latest release (see http://www.perceptualedge.com/blog/?p=1532).

Ironically, I was saddened and disappointed — betrayed is too strong a word — by Few himself over his recent dashboard design competition (see http://www.datarevelations.com/stephen-fews-dashboard-design-competition.html).  But let’s not dwell on that just now.

With respect to Tableau 8, While Few acknowledges that “this version of the software includes many worthwhile and well-designed features” he maintains that Tableau’s introduction of visualization types that are “analytically impoverished” is an indication that the company’s “vision has become blurred.”

This is a grossly unfair assessment as while there may be some aspects to the release that leave me shaking my head, the vast majority of features show crystal-clear vision and laser-guided direction.

Indeed, as someone who uses Tableau every day of every week, I think version 8 is a godsend as the productivity improvements for me, my clients, and my students will be huge. Yes, there are some things in the product that are half-baked – and goodness knows we’re not used to seeing anything half-baked from Tableau.  But for Few to write 6,000-plus words condemning the release while barely acknowledging the incredible advancements seems grossly unjustified.

So, let’s plug in the 1965 Fender Stratocaster and have a listen, shall we?

Acknowledging that which is Half Baked

I’ll start off by acknowledging some of the things that I think are half-baked:

  • Bubble charts have an algorithm flaw, and size and placement cannot be controlled
  • Forecasting is under-documented and does not inspire confidence
  • Treemaps are flawed
  • Multiple Value (Dropdown) filters needs an “apply” button

Bubble Charts

I have no problem with Tableau including this chart type, even though I don’t know if I will every use this viz type in a production environment.

I might, however, use this to help me get a visceral feel for the data.  That is, I rather like the “gestalt” appreciation I get from looking at a bubble chart.

My two problems with Tableau’s implementation is that it’s too much of a “black box” (i.e., I cannot control size and placement) and that you run into bubble sizing problems if you attempt to display both very large and very small values.

Consider the visualization below that I created for my recent “Infographics Behaving Badly” post.

A visually-compelling, but analytically-flawed bubble chart.

As Joe Mako noted, the bubble for The Diary of Anne Frank is the same size as the bubble for The Lord of The Rings even though sales of the latter are almost four times greater than the former.

Apparently, the smallest bubble Tableau will draw is 1/25th the size of the largest bubble.  Rumor has it that this shortcoming will be addressed in a forthcoming bug fix release.


I’ve spent several hours experimenting with this feature and I’ve come to the conclusion that I’m better off creating the forecast using an algorithm that I can control.

Don’t’ get me wrong, I would love to be wrong about this and find out that this feature is deep and rich, but based on my experience it smacks of first iteration, “good-enough-to-get-a-check-mark-on-a-comparison-chart” quality.

Default forecasting results do not inspire a lot of confidence.

Results when you take into consideration trend and season.


Few’s comments on the shortcomings in Treemaps are spot on, I’m just not terribly upset about it as we never had treemaps before.  While the implementation is flawed, it’s still useful.

But yes, I hope Tableau makes this better down the road, as per Few’s recommendations.

Multiple Value (Dropdown) Quick Filter

I’ve wanted this feature for several years as the standard multi-select filters take up A LOT of screen real estate, as shown here.

A check-all-that-apply quick filter.

So, I’m delighted that this functionality can now be neatly packed in a compact dropdown list box.

A compact check-all-that-apply quick filter.

One problem still persists with check-all-that-apply filters and that is Tableau’s insistence on redrawing the visualization after every click.  For some projects it can take several seconds for Tableau to re-render the viz.  Users lose patience with this type of behavior.

I believe that Tableau did have an Apply button in the works that would have addressed this problem but they ran into some stability issues and elected to postpone implementing this feature.

I hope to see it soon.

What About Word Clouds?

I don’t mind that Tableau gives people a way to create these things even though I think they are an analytically-flawed way to present information (although they can pack more of an emotional wallop than a bar chart).

A major problem with word clouds occurs when your data contains different terms that describe the same or similar sentiment.  Consider the word cloud shown below that shows survey responses to the question “what is your mood right now?”

Are the majority of people happy?

One might think that most respondents were happy, but look what happens if we “linguistically normalize” the terms that are synonyms of “sad”:

… or are more people sad than happy?

It turns out that more people are in fact sad.

Note: There are products that are capable of parsing full sentences and are able to “disambiguate” and then normalize terms under umbrella concepts (although I have yet to see the functionality in any word cloud generators).

Acknowledging that which is Fully Baked

I could probably write 6,000-plus words on all the new features that wow me in version 8, but I’ll just focus on five that will allow me to produce better work faster:

  • Applying filters to selected sheets (this is just brilliant)
  • Enhanced set functionality
  • Floating / free-form dashboard elements
  • Enhanced marks card (and in particular multiple text entries)
  • Improved data blending
  • Bonus item – Tableau’s incredible responsiveness during the beta

Applying Filters to Selected Sheets

I’ve been pining for this since version 4 and while it has taken Tableau more years than I would have liked to see this realized, the implementation is beautifully rendered.

Tableau exceeded my expectations here as in making my case for this feature I just wanted to see the following three filter options available to me:

  • All worksheets in the workbook
  • Just this worksheet
  • All worksheets in this dashboard

But as with so many other beautifully-crafted features in the product (including the “add reference lines” dialog box, which one needs to implement Few’s own bullet charts), Tableau developed a more generalized and elegant approach for controlling filter scope, as seen in the following menu sequence and dialog box.

Start by indicating you want to control the scope…


… then apply the filter to selected sheets.

Do you hear that?  That’s a choir of imaginary angels singing “ahhhhhh”.

Enhanced Set functionality

The new IN / OUT set functionality is a huge addition and the ability to combine sets is beautifully rendered as shown in this dialog box.

Holy Venn diagram, Batman!

Work like this is hardly an indication of blurred vision.

Floating / free-form dashboard elements

With past versions of Tableau I’ve spent a lot of time fighting with Tableau’s dashboard layout constraints.  Indeed, I would spend hours sparring with Tableau to place visualizations, quick filters, legends, and so on, into a too-cramped-for-all-the-elements-I-want space.

With the latest release there will be a lot less fighting as any and all objects can now be floating elements, so I can easily place objects on top of other objects.

While this may not seem like a big deal, the ability to place legends and filters atop a visualization (vs. locking these items into a designated corner) makes for more efficient use of space and a much slicker looking dashboard.

In this example, floating elements buy me 80 to 100 pixels.

Here’s how I would have presented this in the previous release:

Having to put filters and legends in a designated area means less room for the visualization itself.

Enhanced marks card (and in particular multiple text entries)

I never had a problem with tableau’s “shelf” concept for controlling text, color, size, and so on, but the new “button” concept and attendant marks card implementation are well-designed and will make my life easier, both as a developer and as someone that trains others.

Tableau’s new marks card.

But there’s more to this than just a slicker user interface.  By moving away from the one-item-at-a-time-on-a-shelf approach you can now have multiple items controlling facets of the visualization.  Having multiple text items in play is particularly useful, as shown here.

It’s now a snap to display both count and percentage by placing multiple text elements on the text marks card. I’m also using the floating elements feature to put the title and explanatory text within the viz itself.

Improved data blending

There are a handful of technologies that never cease to amaze me.

WiFi certainly falls into this category.  Even though I’ve used it thousands of times, I’m always enthralled that I can be sitting in a coffee shop, airport lounge, or family room and I can connect to the Internet.

I have the same reaction to trade show pop-up display booths.  I’ve set these things up dozens of times and I’m blown away every time I see the little compact frame expand to ten times its packed size.

I have the same reaction tor Tableau’s data blending capability.  That I can easily – and I mean really easily – get data from one source (e.g., SQL server) to play nicely with data from another source (e.g., Microsoft Excel) without having to think very hard never fails to amaze me.

There had been a major shortcoming in previous releases and that was that the field that linked the two sources had to “be in play”; i.e., either the field was visible or it had to be placed on the level of detail shelf.

This is no longer the case with Tableau 8 so this capability that was so amazing in previous versions is now even more amazing.

Bonus item – Tableau’s incredible responsiveness during the beta

I’ll confess that I thought the various beta builds for version 8 were quite buggy – significantly buggier than with previous versions of Tableau. To be fair, betas from previous releases were insanely stable and beta builds in V8 were no buggier than betas from companies like Microsoft.

Still, having worked with betas going back to 2006, I wasn’t used to stuff not working right.

But I never had much time to worry as Tableaus responsiveness to my bug reports allayed all my fears.  Indeed, their rapid response and genuine concern for my concerns showed great customer focus.

Particular praise should go to Francois Ajenstat whose attentiveness was second-to-none. Our community is lucky to have him as such a stalwart user advocate.

Parting thoughts

While I disagree with the one-sidedness of Few’s critique, I’m profoundly grateful that he did express his dismay as  given his reputation – well deserved, I might add – I suspect we’ll see Tableau attend to the itemized shortcomings sooner rather than later.

Also, it is posts like Few’s – and the attendant replies and follow-up posts, including this one – that produce better products and services.  Indeed, it is through this open discussion that we spread our collective knowledge and expertise, and improve the state of the art.

Let’s keep the passion going.


 Posted by on April 7, 2013 1) General Discussions, Blog 1 Response »