Pages

Friday, January 30, 2015

Viz Makeover | A Better Column Chart

This "Sports Chart of the Day" from Business Insider showed up in my data viz blogroll the other day...


My first thought is, "Fantastic! A column chart. Let's see what the story is."  My second thought is, "Maybe if I stand on my head, I'd be able to read this better."  Or maybe I can rotate my monitor 90 degrees counterclockwise to get something like this...


I guess that's a little bit better.  Now I can actually read the labels.  But I'd still rather see it in descending order and the bars should be extending to the right of the baseline.  Even if I had the ability to rotate the graphic on an imaginary vertical axis, it's still going to result in something to the left or right of upside down or backwards.  In other words, it needs a makeover.

This one is pretty simple.  After all, it's still a column chart and that's a good starting point to show a simple ranking of categorical data.  But let's first look at the data to determine what's important for the story.

According to my strict interpretation of data visualization best practices, here's where I land...


The original graphic has too much "fluff" and it fails to showcase the data.  In this case, it's the descending rank of the columns that is the most important story.  The question I'm asking is, "What teams have the highest rating and what teams have the lowest?"  Along with, "What is the average rating? And what teams are above and below the average?"  Ultimately, it's the length of the bars that hold these answers.  That's what we need to focus on.

Okay, maybe I'm a bit aggressive in stating that the data labels and the title are junk.  In fact, they are a necessary element to the story.  But not important enough that they should occupy 70% of the visualization.  They're too bold, too large, and unnecessarily precise.

Enough about what's wrong with the original, let's make it more effective.  Here's my makeover followed by an explanation of each of my changes...



Title - there's no reason for your title section to take up the top quarter of your visualization.  Left justify it and use an action title to frame the context of your story.  I've also rolled the original subtitle into the title.  Font size shouldn't be too great that it draws attention away from the real data.

Columns - this is your focus - the real data, your data ink.  Display this prominently and push the non-data ink to the background.  Using color encoding from my action title, I'm focusing my audience on the two data points that I want to emphasize (Seattle and Boston).  In this case, there's really no meaningful purpose in assigning different colors to these items (as we see in the original).  I also added an average rating line to aid in storytelling.  Now we can see which teams are above and below the league average.

Data labels - I chose to forgo a visible y-axis in this case and instead I've labeled each of my columns with the rating value.  I could just as well use the y-axis and omit the labels, but with 32 columns it would be difficult to gauge the values for the columns at the far right of the visual.  While including the data labels, I'm still pushing them to the background by using a smaller font size.  And, most importantly, the labels are horizontally oriented.  Avoid vertical orientation of labels - don't make your audience stand sideways to read your data.

x-axis - in the original chart, the full team names are used.  This forces the labels to be vertically aligned.  That's a violation!  It's not necessary to list the full team names here.  Keeping in mind that your audience is likely a sports fan, and even more likely an NFL fan, they're going to recognize abbreviated team names or even team helmets.  Use what your audience already knows to your advantage.  I chose a combination of helmet icons and abbreviated team names along the x-axis instead.  This allows me to horizontally align the labels and provides enough context for a reader who may not recognize the team helmet logos.  In many cases, I'd omit the logos but since this is a blog post/journal article (as opposed to business intelligence), I think the logos add a bit to the visual appeal without adding too much "chart junk".

Brand logo - I get that this is the "Sports Chart of the Day" and it's published by Business Insider.  How can I miss it?  It's the first thing I see in the title and it's in all caps in the lower left corner.  These are non-essential elements.  Mute them and push them to the background.

Source - doesn't need to be in all caps, doesn't need to be bold font, and doesn't need to be sized larger than your data labels.  Again, mute it and leave it in the lower right corner.

Notice the result we get by making these five or six small changes.  We're simply increasing the volume of the data and muting the volume of the background noise.

In closing, bar charts are fantastic storytelling tools.  But like all forms of storytelling, there's an art and science required to really nail it.  It's not a complicated art form, it only takes an ounce of effort and skill.  Next time you build a bar chart, use the suggestions above and you'll see it's quite easy.  And you'll get the Bar Chart Guy stamp of approval.

3 comments:

  1. Why didn't you keep the horizontal bar orientation that you teased us with? That would allow horizontal labeling of the teams. Don't use logos, because to many look alike and have similar colors.

    ReplyDelete
    Replies
    1. Hi Jon. Thanks for stopping by.

      The reason I didn't go with the horizontal bar chart is that I wanted to show how to do a better column chart in this post. The author of the original graphic chose a column chart, so rather than flip it to a bar chart, I thought I'd just give it a quick makeover and keep it true to the original column format. If I had designed the original from scratch, I certainly would have started with a bar chart. I very rarely use column charts in my every day work.

      In this case I chose to include the helmet logos simply to show how to include a non-data design element without making it overwhelming. Yes, they are small and the colors are similar. However, I do feel that they lend a bit to the quick readability of the x-axis and they don't detract from the overall column length (which is really what's important here). In a business use case, I wouldn't include the logos. For a blog post, I think it's acceptable to include them.

      Finally, if I'd started with a horizontal bar chart I still don't think I would include the full name of the teams. I'd go with "Steelers" instead of "Pittsburgh Steelers". Again, with my audience in mind, I don't think it's necessary to include the full name for each team.

      Delete