There is a big rule in data visualization that most designers would never break – bar charts value axis should always start at 0.
And this rule is there for a reason. Let’s look at an example.
Here is a bar chart that starts at 20:
This makes it look as if B is three times bigger than A.
Here is the same bar chart with an axis starting from 0 value:
While the information is still the same, the truncated bar chart can mislead audiences and result in misinterpretation of the actual numbers.
Breaking the bar chart zero axis rule
However, there is always an exception to the rule. Or rather, as we all know, all rules are meant to be broken. When we communicate with data breaking a rule has to be thoughtfully considered. Data provides information and insights that influences certain decision making. If data tells the wrong story it can lead to the wrong decisions.
So, I recently decided to explore thoughtful options to break the 0 value axis rule for bar charts. I think there are, although a small number, use cases where bar charts can still effectively communicate data even if the value axis starts at a higher than 0 value.
Here is a bar chart showing percentage value for several categories.
All these categories seem to be performing above the 80% mark. So here is what the same bar chart will look like if we start the value axis at 80%
Since the values below 80% are somewhat redundant in this case eliminating them can still make the chart effective.
Here is another example with real data looking at cost of living percentage for the top five most expensive states as compared to the national average cost of living. This chart shows only the top five most expensive states which have a cost of living way above 100% of the national average. The axis starts at 100%.
What I find to be a good practice, if you choose and if it is appropriate to start the axis at a higher value, is to include data labels and show your axis but only the lower and upper value:
While I am a supporter of the 0-axis rule, I also think a higher axis use case serves a purpose. In some cases it might even be better to intentionally start your axis at a higher value to highlight values between 80% and 100% or top performers or any other data sets where the comparison with zero is not necessary.