Settling the "Should Bar Chart Y-Axes Start at Zero?" Question — Axis Design by Context
"The Y-axis must start at zero" is one of the most famous rules in data visualization. Apply it mechanically, though, and the message you're trying to send can disappear. Let's reconsider — by chart type and by purpose.
One of the first rules many of us learn is: "Start the Y-axis at zero." The reasoning is straightforward: without zero as the starting point, the height of a bar no longer reflects its value correctly. With bars of value 95 and 100, if the axis starts at 90, the bar lengths look like a 1:2 ratio. That distorts the numbers.
The teaching is correct — at least for bar charts. In practice, however, following the textbook religiously can leave a chart "too flat to communicate anything." Take stock prices, where the second-decimal-place movement matters: drawn from a zero-based axis, both bars and lines look like an indistinguishable horizontal stripe. The gap between principle and reality. How you bridge it is where the practitioner shows their craft.
Why the rule holds — bar length encodes value
First, let's nail down precisely why "start the Y-axis at zero" is correct.
Bar charts encode value as length. Bars of length 20 and length 40 read as "twice as much." That's the bar chart's greatest strength and, simultaneously, its greatest constraint. If length isn't proportional to value, the chart stops working.
Hence the Y-axis must start at zero. Start the axis at 90 and a bar of value 95 has "length" 5, while a bar of value 100 has "length" 10. The actual value gap is 5%, but the bar-length ratio is 1:2 — a 100% difference, visually.
Conclusion: Bar chart Y-axes should, as a rule, start at zero. Legitimate reasons to break this rule are nearly nonexistent. "I want to emphasize the change" is not a legitimate reason — it's actually contrary to visualization ethics.
For line charts, the story changes
Line charts are different. What a line chart conveys is not "the value itself" but "the trend of change."
Take monthly stock prices as an example. When the S&P 500 moves from 4,820 to 5,150, that change is important information for the reader. Plotted with a Y-axis from zero, however, the line clings to the top of the chart and looks almost flat. The 330-point movement disappears visually.
For line charts, narrowing the axis to "the range the data actually occupies" often communicates the message better. The reason is that the unit of information a line chart conveys is "the slope of the line," not "the height of the line." When you want to see the slope, having the data flatten at the top edge of the chart defeats the purpose.
The bar chart's protagonist is "length"; the line chart's is "slope." That's why the axis is treated differently.
Practical rules by chart type
Let's distill this into practical rules.
Bar charts: start at zero, by default. The only exception is when you're using a logarithmic scale (which can only handle positive values, but is useful when the data spans many orders of magnitude — 10, 1,000, 100,000). Beyond that, there's almost no legitimate reason to make a bar chart with a non-zero baseline.
Line charts: center the axis on where the data actually moves. But beware: zooming in too far when the changes are small can make noise look meaningful. As a rule of thumb, set the Y-axis minimum slightly below the data minimum and the maximum slightly above the data maximum.
Area charts: start at zero, by default. Area charts encode quantity as area, so like bar charts, the axis baseline distorts the result. Keep it at zero.
Horizontal bar charts: the X-axis (value axis) must start at zero. A horizontal bar is still a bar; the principle is identical.
Another option: the "broken axis" mark
If you really must emphasize change in a bar chart, there's another option: a "zigzag" mark partway up the Y-axis to make it explicit that "the axis is broken here."
This is a traditional statistical convention — making "the axis is not continuous" visible to the reader to prevent misreading. In modern business documents, however, it's seen less often. Zigzag marks render unreliably in digital environments, and people generally prefer "data representations that don't need a broken axis at all."
Practically, when you find yourself wanting to break a bar chart's axis, consider switching chart type first. Use a line chart instead and narrowing the axis becomes legitimate. Or draw "rate of change (%)" as a separate bar chart. By separating "absolute comparison" from "rate-of-change comparison," each chart can stay honest on its own.
Axis design is where you draw the line on honesty
Axis design in chart-making is the last bastion of data honesty. Color and legend choices affect impressions, but they don't distort the numbers themselves. Axis design distorts how the numbers look directly.
"Start at zero" is a necessary consequence of what a bar chart fundamentally is. "Narrow the axis to the data range" is a craft technique permitted because line charts are devices for conveying slope. Rules aren't to be memorized mechanically — they're to be understood for why they exist, then applied with the chart type and message in front of you.
Next time you make a bar chart, look at the Y-axis. Does it start at zero? If not, is that by design — or by oversight? If by design, you should be able to put the justification into words. If by oversight, fixing it is the more honest path.