A bar chart is a chart that represents values of discrete categories as rectangular bars whose length is proportional to the value each bar stands for. In data visualization, it is the default choice for comparing quantities across categories, such as sales by region, survey answers by option or defects by cause.
The bar chart works because it encodes data as length from a common baseline, one of the most accurately perceived visual encodings. That strength comes with a firm rule: because the eye compares whole bar lengths, the value axis of a bar chart must start at zero.
How a bar chart encodes data
A bar chart has a categorical axis, which lists the items being compared, and a quantitative axis, which carries the numeric scale. Each bar begins at the baseline and ends at its value, so both the position of the bar end and the bar length convey the same number.
Perception research on graphical encodings, most notably the experiments of Cleveland and McGill, found that people judge position along a common scale and length far more accurately than angle, area or color intensity. The table below summarizes this ranking and why it favors bar charts.
| Encoding | Typical chart | Relative accuracy |
|---|---|---|
| Position on a common scale | Bar chart, dot plot | Highest |
| Length | Bar chart, stacked segment on a shared baseline | High |
| Angle and slope | Pie chart, line slope | Moderate |
| Area | Bubble chart, treemap | Low |
| Color saturation | Heatmap, choropleth map | Lowest for exact values |
Bars can run vertically, often called a column chart, or horizontally. Horizontal bars are preferable when category labels are long or when there are more than about ten categories, because labels remain readable without rotation.
Types of bar chart and when each fits
Variants of the bar chart extend it to subgroups, part-to-whole questions and values above and below a reference. Each variant answers one question well and makes others harder, so the choice should follow the main comparison the reader needs to make.
| Variant | Best for | Main limitation |
|---|---|---|
| Simple bar chart | Comparing one measure across categories | Shows only one series |
| Grouped bar chart | Comparing a few subgroups within each category | Becomes cluttered beyond 3-4 subgroups |
| Stacked bar chart | Totals plus their composition | Inner segments lack a common baseline |
| 100% stacked bar chart | Comparing shares across categories | Hides absolute totals |
| Diverging bar chart | Positive and negative values or Likert scales | Needs a clearly marked center line |
| Lollipop or dot plot | Many categories with similar values | Weaker sense of magnitude than a filled bar |
The weakness of the stacked bar chart deserves emphasis. Only the bottom segment and the total sit on a common baseline; middle segments float, so comparing them across bars forces the reader to judge lengths at different starting points, which is much less accurate.
Bar chart compared with related charts
Bar charts are often confused with histograms and are often replaced, sometimes wrongly, by line charts or pie charts. The key question is whether the horizontal axis holds separate categories, continuous bins or ordered time.
| Chart | Axis type | Answers the question | Bars touch |
|---|---|---|---|
| Bar chart | Discrete categories | How do categories compare | No, gaps separate bars |
| Histogram | Continuous bins of one variable | How are values distributed | Yes, bins are adjacent |
| Line chart | Ordered, usually continuous time | How does a value change over time | Not applicable |
| Pie chart | Parts of one whole | What share does each part take | Not applicable |
| Heatmap | Two categorical or binned dimensions | Where are the high and low values | Not applicable |
Time can appear on a bar chart when periods are few and discrete, such as quarterly revenue for two years. For long or dense series, a line chart shows the trend more clearly, because it emphasizes change between points rather than the size of each point.
Design rules for clear bar charts
A clear bar chart follows a small number of design rules that keep the encoding honest and the comparison fast. These rules apply equally to static reports and to dashboard widgets.
- Start the value axis at zero. Bar length must be proportional to value; a truncated axis exaggerates differences.
- Sort bars by value when categories have no natural order, so the ranking is visible at a glance.
- Keep a natural order when it exists, such as age bands, months or satisfaction levels.
- Set gaps at roughly half a bar width or somewhat less, so bars read as separate items without wasting space.
- Use one color for one series and reserve an accent color for the bar that carries the message.
- Label values directly on or next to the bars when exact numbers matter, and remove gridlines that the labels make redundant.
Common bar chart mistakes
Most misleading bar charts result from breaking the length encoding, often unintentionally. A truncated axis is the classic case: if one value is 96 and another is 100 and the axis starts at 90, the second bar is about 67% longer, although the real difference is only about 4.2%.
| Mistake | Effect on the reader | Fix |
|---|---|---|
| Truncated value axis | Small differences look large | Start at zero, or switch to a dot plot |
| 3D bars or perspective | Bar ends are hard to read against the axis | Use flat 2D bars |
| Too many categories | Labels overlap and ranking is lost | Show the top items and group the rest as other |
| Logarithmic value axis | Bar length no longer reflects magnitude | Use points on a log scale instead of bars |
| Bars for averages only | Spread and sample size are hidden | Add error bars or show individual points |
| Rainbow colors without meaning | Reader searches for a nonexistent pattern | Use a single color plus one highlight |
Explained without jargon
A bar chart turns numbers into bars so that bigger numbers get longer bars. Instead of reading a table of figures, the eye simply looks for the longest and shortest bars and sees the ranking at once.
It works like comparing people standing side by side on the same floor. Their heights are easy to compare because everyone starts from the same level. If some people stood on boxes, the comparison would mislead, and that is exactly what happens when a bar chart does not start at zero.
A typical use case
A customer support manager wants to know why ticket volume rose during the last quarter. The team logged 5,000 tickets across 12 categories, and the raw table makes it hard to see which issues dominate.
An analyst builds a horizontal bar chart sorted from largest to smallest, with the value axis starting at zero and each count labeled at the end of its bar. Billing questions lead with 1,240 tickets, login problems follow with 980, and delivery delays come third with 680. Together, the top three categories account for 58% of all tickets, while the remaining nine share the rest.
The billing bar is highlighted in an accent color while all other bars stay gray. In a single slide, the manager sees where effort will have the greatest effect and funds a redesign of the invoice page as the first improvement project.