It all began with my Excel Dashboard Tutorial – Making a dashboard with player statistics. I have used bar charts with axis whose minimum is not zero, to create a dramatic effect in the charts. See below:
Jon Peltier commented saying that,
Rule #1: Bar and column chart value axes should start at zero. Since the lengths of bars and columns represent their values, starting at a position other than zero will lead to a misleading display.
As always Jon raised an excellent point. I liked it so much that I wanted to get your opinions on this axis scaling issue.
What do I think about this visualization rule ?
First the positive points about the rule:
- If you start axis at non-zero values, it gives a wrong impression about the data. In my example above you might end up thinking the top value is actually 10 times that of bottom value.
- The rule helps easy interpretation of data, since everything starts at zero.
Now the negative points about the rule:
- Not all data starts at zero (like the above with values ranging from 8000 to 12000). So when you create a bar chart for the data (why only bar charts, because they are easy to make and read) often you end up creating charts from which making out any analysis could be slightly difficult
- Breaking this rule helps in creating dramatic effect on your charts, one of the reasons we use them. Often when you use data with narrow range, creating dramatic effect could be difficult. Axis adjustments can help (you may want to try logarithmic axis scale as well)
Finally, I think this rule can be broken as long as we have right data and make alternative arrangements (like adding data labels) to ensure correct interpretation. Since this is a standard people have come to expect, it is better to make it clear to your audience about the axis range.
What do you think about the charting rule: Bar and column chart value axes should start at zero.
24 Responses to “Reader Poll: Should the axis for bar charts always start at zero?”
Breaking this rule to create dramatic effect still falls under the "misleading" umbrella. Data should be presented in a way that does not exaggerate the outcomes and can be interpreted easily, clearly and unambiguously.
I've seen axis scaling a lot in corporate presentations and publications, and in most cases it is used dishonestly to exaggerate the performance of a product. This is not a good way to go.
Excel 2007 seems to have data misrepresentation built in by default (for more egregious examples of such chart abuse see http://www.juiceanalytics.com/writing/2006/09/ and http://blogs.msdn.com/excel/archive/2007/10/01/data-bars-feedback-please.aspx), but this is no reason to embrace bad practise.
I agree with Sam. However, I believe you could achieve your desired goals of showing the difference by using a zoomable interface or show the original chart then do a callout for the non-zero chart. That way they are both within view.
Not all data starts at zero
Which is another way of saying "not all data should be shown using a bar chart". I've gotten into the habit of making a special point of that part, now.
If you're going to make a bar chart, start at zero.
If you want to highlight differences, then calculate the differences and plot them.
Agree with above. Bar chart scale should start at zero. If the differences need highlighting, use another chart type or plot the differences.
I can't imagine a good situation for starting a bar chart at any value above zero. If, as Matt stated, you want to show differences from a value (say 8000), then calculate that difference and plot it with an appropriate title. The problem you always run into is pointed out in your positive point # 1 "you might end up thinking the top value is actually 10 times that of bottom value."
Anything that may lead a user to believe or assume something that isn't true is a poor choice for data visualization.
I'm confused as to why no one else has pointed out an easy fix - use a dot chart instead of a bar chart. Then there's no reason to include 0, because you are judging the position of the points along a common scale, not the lengths of the bars.
Awesome comments everyone. I will make another post with correct bar charts (or alternative visualization)
I also agree -bar charts should always start at zero. Even Edward Tufte wrote about that! 🙂 I have faith you will come up with an awesome alternative.
[...] Adjust axis scaling: You may not want to adjust the axis scaling minimums. Read the follow up discussion here: Should bar charts always start at zero? Reader Poll [...]
Another good discussion!
My humble opinion is that one can only break this rule to exaggerate the differences if he/she "keeps the graphic honest" by putting in big-red-bold letters that the starting point is not zero. Thus he/she gets the desired zoom effect without misleading conclusions.
By the way, is there a way to change the scale (starting or not in zero [and in this case telling out loud you're doing so]) by adding a "combo-box" in the worksheet? I mean, a "combo-box" with two options like "starting at zero" and "highlighting the differences" that could change the graphic "in real-time"?
Bruno@Brazil,
you can change the scaling of an axis using VBA:
Worksheets(1).ChartObjects(1).Chart.Axes(xlValue).MinimumScale = 0
Write appropriate VBA code deciding which scale to use (depending on the result of the combo box) in the worksheet.calculate sub.
@Cheryl: thanks, I have few alternatives ready, will post them today / tomorrow.
@Bruno: Thanks for sharing your ideas. Of course, the purpose of visualization should not be deceive the audience (even though charts are often used for hiding the truth).
Btw, Robert has already answered your question. But if I were you, I would not tie vba logic to chart objects, but instead use combo box selection value to determine the source data for the chart. That way you can modify the data or use more charts without having to worry about the vba.
In the past, I've used a scrollbar (linked through VBA) to allow zooming or scrolling. If the scale of your multiple series is way off and VBA isn't your thing, a logarithmic axis may do the trick as well (right click on the axis, choose scale, and click "Logarithmic..."
That brings up a similar question though, is using a logarithmic scale deceiving/confusing for a user?
@John ... On "logarithmic" scale, actually it makes sense to use it when you have data with exponential trends (like distance between earth and nearest planets, star etc. or the US Debt in the last few decades...)
And it is fairly normal to use logarithmic scale since it is accepted in scientific community. But using it office for day to day purposes can be painful because not many people may remember the logarithm stuff from school and cant correlate it to the point.
What do you think?
[...] of all, thanks everyone for making the should you always start barcharts at zero? discussion lively. Almost everyone felt that we should start bar charts at [...]
Log scales are fine, but, again, *not for bars*. For one thing, log scales have no zero: it's infinitely far off to the left.
The thing about bars is that you're reading the length of the bar as a quantity, so it has to be visibly proportional in size to the quantity reported in the number. Anything that interferes with that means you can't use bar lengths.
Thank you Robert and Chandoo, you not only answered my question, but told me how to be able to change the graphic in two different ways. Robert's idea seems to be more direct, while Chandoo's one seems to be more easily to handle and to pass it on to others. Once again, thank you guys.
@Derek: agree, log scales are more suitable for line charts or xy plots. I have rarely seen bar charts with log scales.
@Bruno.. you are welcome 🙂
[...] Reader Poll: Should the axis for bar charts always start at zero? [21 October] [...]
No graph or design is good or bad in itself. Ask yourself what you would like to achieve.
For performance dashboards or anything that people will continuously look at to evaluate or compare performance, I believe, X-Axis scales not starting at 0 should never be used.
If you want to make a sales pitch, leave out and move X-Axis for exaggeration. best to be combined with a ppt, where you flip to the next slide after 10 seconds (if you leave out X-axis scale like in the example you make it worse).
Apart from this, and depending on the purpose again - I would not advise to put values into a bar. A scale works better for pleasing design, as the last 2-3 digits are mostly distracting.
@Robert/Bruno
I like the idea of making this a button. Macros would do the trick, adding a button to switch to lowest value/move to 0. Highlighting the selection above the graph.
take a look at http://peltiertech.com/Excel/Charts/BrokenYAxis.html
it tells about breaking the axis into segments to get around the problem in discussion...
what are your thoughts on
1. the appropriateness of this way of data representation
2. any other better ways to do this...
I humbly disagree with Jon. I've been defending the opposite argument in heated debates with colleagues (I work in government statistics)
Graphs result from choices made by their author. As such, they are interpretations of data and cannot be neutral or objective. So all graphs could be called misleading.
My counter example would be dow jones statistics. If we represented them as starting from 0, what happened in the past 6 months would look like a ripple whereas it's a once-in-a-lifetime change. Financial services usually represent this with a non-0 origin.
Just because you adjust your graph to make a point doesn't make it wrong, especially if you have a story to back up your choice. However, if you use such a graph to push a false conclusion, then this is lying.