Bar chart best practices

tl;drAlways start the value axis at zero. Sort descending unless categories have a natural order. Use one color, two if you're highlighting. Label the chart with the question it answers. Strip everything that doesn't carry information.

Start the axis at zero

This is the one rule. Bar length encodes the value, so a non-zero baseline lies about that value. If a chart has bars of length 10 and length 12, but the axis starts at 9, the second bar will be three times as long as the first — visually implying "three times the value" when the actual ratio is 1.2x. Either start at zero, or switch to a chart type (like a line chart) where a non-zero baseline is acceptable.

Sort with intention

Default to descending (largest first). Override only when the categories have an inherent order: chronological for time-series, scale-order for Likert ("Strongly disagree → Strongly agree"), or alphabetical when the reader will look up specific entries. Random or input order is almost always wrong.

Bar chartQ1142Q2168Q3195Q42210100200300400500
Example chart

One color, mostly

Bar charts don't need color to encode value — length does that. Use one color for all bars unless you're highlighting one or two specific bars (the focus of the chart, or "current period vs prior periods"). For diverging data, use two contrasting hues. Avoid rainbow palettes; they create visual noise without adding information.

Make this chart on makebarchart.com.

Open the maker

Label what helps, omit what doesn't

Show data labels on bars only if exact values matter. Show gridlines only if the axis labels aren't enough. Don't show both data labels and gridlines — they compete. Strip the chart border, the chart background, and any 3D effect. Negative space is a feature, not a bug.

Title with the message, not the variables

"Bar chart of revenue by region" is a description; "EMEA revenue overtook NA for the first time in Q4" is a title. A chart title that names the headline lets a reader skim and still get the message. If your reader has only one second, the title is what they read.

Mind the reader's context

Slide-deck bars need to be readable from across a conference room — make them thicker, fewer, with bigger labels. Web charts can pack more in because readers are closer. Print charts can't use color the same way as screen charts; design for the medium.

Test by removing things

Once you have a chart, try removing the title, the axis, the gridlines, the data labels — one at a time. If removing something doesn't hurt the chart's message, leave it removed. Most published bar charts have at least one element that's pure decoration.