Data Viz Done Right

October 20, 2014

Monday Makeover: Causes of Death in the USA

Today, Tableau's Viz of the Day team chose this visualization from John Schoen of CNBC.  Click on the image to go to the interactive version.

One of my frustrations with Viz of the Day, as I've noted on both of my appearances on the Tableau Wannabe Podcast, is that I suspect people look at these as examples of visualizations done well, even though that's not the true intent. Yes, I'm saying that anecdotally, but I base this off of a few conversations I've had with people about it.

In today's viz, there are an abundance of issues.  Here are a few:
  1. The filled map makes it impossible to see the smaller states. In fact, it's nearly impossible to trigger the action when hovering over Rhode Island. Filled maps can easily skew the data towards the larger states, so a bubble map is preferred.
  2. The temperature diverging color palette for the map is not color-blind friendly. 
  3. The colors on the map and on the packaged bubbles are too similar.  Green on the map means a low rate, while green on the bubbles means cancer.
  4. The stacked bar chart in the middle adds no value. When you hover over a state, the packed bubbles changes, so what value is the stacked bar chart adding.
  5. Packed bubbles are a very poor way to communicate ranking. A sorted bar chart is better. 
Given these problems, I decided to give it a quick makeover today. I stayed within my one hour time limit that I generally set for these makeovers, so I realize there is probably more I could have done.

In my one hour, I attempted to address all of the issues I pointed out above.

  1. I changed the map to a bubble map. Now it's easier to see all states because I've also sized the states by the number of deaths for additional context.
  2. I'm using a blue-red color palette consistently throughout to represent the death rate.
  3. I removed the individual colors for the diseases and colored them by the death rate instead.
  4. I killed the stacked bar chart. I also included an action from the bar chart to the map (in addition to the existing map to bar chart action).
  5. I changed the packed bubbles to a ranked bar chart.
Simple changes that take very little time can often make for a much more pleasing visualization.

What else would you have done? Download the workbook here and give it a shot.


  1. Andy, I suspect many people will react the same way I did the first time I saw the map. I've been inculcated to see anything red as "Republican" and anything blue as "Democrat". My other problem is that that color scale (extreme red to extreme blue) is different for the symbol map that it is for the bar chart. Indeed, I don't think you need anycolor coding for the bar chart as the length of the bars is taking care of conveying rate per 100,000.

    Steve Wexler

  2. The number of death rate is doubled vs the original viz.
    There is a "All causes" included in disease dimension. It should be excluded from the sum total.

  3. 1.Use "[State]=United States" death rate for leading cause ranking. The "All" option is a sum total of individual state's death rates. That's not a correct calculation of US death rate. For example, the resulting death rate for heart disease 9997 alone is 9 times bigger than national death rate of 1179 for all causes. The resulting ranking is also not correct.
    2.Another option is to use death number for top cause ranking, as in the original viz. This way, the aggregate sum will work.
    3.Agree with you on the use of the map. I refrain myself from using the map as an index for State. It also biases towards bigger states. One can hardly find Rhode Island or
    Delaware to click or hover. A drop down menu will do a better job.

    Not meant to be picky. Each step, we are getting closer to a better viz :)

  4. 4."All other causes" is not a real cause. Should be excluded from the leading cause ranking. Here is the original data:

  5. Got a further look into the leading causes of death in US with a geographical perspective for each leading cause: