# Stacked Bar Chart Improvement

I compared stacked and clustered charts in Stacked vs. Clustered. Stacked charts seem like they’d be good at showing proportions making up whole quantities, but I showed that the stacks only clearly display the bottom item in the stack and the total stack.

To illustrate this shortcoming, Nicolas Bissantz shows us a stacked bar chart showing the relative contribution of petroleum cost (base price) and taxes to the total price of a liter of gasoline. He goes on to explain why this is a poor graphic for this purpose.

Which country pays the highest taxes per liter of gas? Only the numbers tell the answer.
The chart doesn’t help. (auto motor und sport 16/2008, p. 3)

The chart allows one to see the variability of base price and also total price across the list of countries. The bars are stacked according to the order in which the costs are determined: start with base price, add tax, to get the total. Unfortunately, by stacking the tax on top of the base price, the tax series has a staggered baseline, and it is difficult by eye to see how taxes vary by country.

Here are two versions of this chart, done in Excel The first is stacked in the order shown above, and all you can see is that variation in the total price is not very much dependent on variation in the base price. The second has series stacked with tax first, and at least you can judge that variation in the tax accounts for a great deal of the variation in the total price.

It is a fairly easy task in Excel to insert a series between two stacked series to establish a constant baseline for the upper series in the stack (see Stacked Charts With Vertical Separation). When this is done, the order of stacking makes no difference, and you can readily relate changes in variation of either component to variation in the total.

In Stacking is out, Nicolas uses a similar technique to show separate bars instead of stacked bars to show the constituents that comprise the total price. His bars include an additional encoding of the values by subtly shading low to high values from light to dark.

Nicolas includes total price among the bars he draws. Perhaps my charts above suffer from not showing this data. But as Nicolas points out (and as I probably subconsciously noted), this third column of bars adds a lot of space for only a little information.

In Reference bars, Nicolas shows a further improvement over stacked bar charts for showing constituents that comprise a whole. Rather than showing the total as a distinct set of bars, he uses an outline of the total as a reference bar for each of the constituent sets of bars.

This is a nice enhancement, because it simplifies the reader’s tasks of estimating the proportion of each constituent to the total price, and of correlating variations between the constituents and the total. Here is my Excel version of Nicolas’ innovation:

1. These seem like reasonable solutions, but they’d get unwieldy for more than two constituent parts.

2. Anonymous says:

Hi Jon,

Love the Stack bars with verticle separation. Great idea.

Not too hot on the reference bars though. If you didn’t read the explanation, it woluld take too long (I believe) to figure out what the the empty boxes around each series are actually related. This goes in the “not intuitive enough” box.

And as you know undoubtedly know, non-intuitive charts just don’t make it to prime time. I have a few clients that ordered the removal of the bullet graphs I implemented because they didn’t know what they showed. We couldn’t afford the realestate on their dashboard for an explanation of the charts.

Great post.

By the way, the link to “Stacked Charts With Vertical Separation” returns a 404 page not found.

3. Anonymous – Thanks for the discussion. The problem with a new chart type is showing it to people for the first time. They’re all so used to their pie charts and 3D column charts that they demand them, even if you can convince them these chart types are no good.

Also thanks for reporting the broken link. It’s fixed.

4. Michael says:

Dear Jon,
I worked on the Stacked Charts with Sep. You use the “Series N” for column headers and “A, B…” for row labeling. When charting the range stated in your example, I get a chart with series as x- and “A, B,…” as y-axis labels – opposite to the description on the site.
Cheers Michael

5. Michael -

Thanks for the comment. When you create the chart, make sure the data is plotted with series in columns. I’ve inserted a note in the original page to clarify this.

6. Michael says:

Hi Jon,

again Stacked Charts with Sep. Now it works. But formatting the dummy label series after assigning the y-labels with Rob’s tool is difficult since you can hardly select the data series without the labels associated to each data point. Therefore the formatting should be done before using XY Chart Labeler.
At the end you write “Readjust spacing as needed.” – How? The y-labels stick at the y-axis ticks. How do I make them to be left assigned with some spacings?

The Stacked Charts with Sep. shows in all areas the *same* function/series, although the data series definitions are in line with rows/columns addresses.

Cheers Michael

[This is compiled from several comments -JP]

7. Michael -

To “Readjust spacing” you need to select the plot area and drag the left and right edges inward to create margins for the labels. In some tutorials I include the step to make room before I add the labels.

The problem with the stacked chart with separation was an incorrect formula, which I’ve corrected off-line.

8. Michael says:

Hi Jon,
thanx for your noble attitude to help me offline – you saved me hours of error tracking ;-)
Have a nice day
Michael

Subscribe without commenting