Comparing categories against each other.
The workhorse. Length along a common baseline is the most accurately compared encoding available, and the rules that protect it are strict for that reason.
Drawn as a bar chart, column chart, grouped bars, depending on the data.
Two clients set the pace for everyone
38% of revenue, and every overdrawn day
Rendered from the project Business account — 12 months, through the same compiler the product uses. Not a picture of one.
What it is for
A comparison chart answers which categories are larger and by how much. Bars work because length is read accurately and because a common baseline makes every pair directly comparable without the reader doing arithmetic.
Everything that makes bars good depends on the baseline being zero. Length is the encoding; a bar starting at 40 encodes a length that corresponds to nothing, and the ratio between two such bars is arbitrary. This is the one place where the zero baseline argument is not a matter of taste.
Reach for it when
- Comparing a measure across categories that are not ordered by nature
- The number of categories is small enough to label, typically under about fifteen
- The reader's question is which one is biggest, or how much bigger
- You want individual values to be comparable rather than a shape to be readable
Use something else when
- The x axis is time and the intervals are regular, where a line reads the shape better
- There are so many categories that the labels become unreadable, where a distribution is the honest form
- The values are parts of one whole and the question is about composition
How this form misleads
01
A non-zero baseline
Bars encode value as length. Cutting the axis at 40 makes a 5% difference look like a 3× difference, and the reader reads the length rather than the label.
Start bars at zero, always. If the differences are then too small to see, the honest conclusion is that the differences are small, and a dot plot showing the range is the alternative.
02
Ordering alphabetically
Alphabetical order encodes nothing. It spends the chart's most valuable dimension, position, on information the reader already has.
Sort by value unless the categories have a natural order such as sizes or age bands. Sorting is what turns a lookup table into a finding.
03
Grouped bars where a difference chart was wanted
Comparing this year against last across twelve categories with grouped bars asks the reader to compute twenty-four differences by eye.
If the finding is about the change, plot the change. A single sorted bar chart of differences answers the question the grouped version only supplies the inputs for.
What this will not draw, whatever you ask for
The agent picks an intent from a closed list and a single compiler renders it. These forms are rejected at the schema layer rather than discouraged in a style guide, which is the difference between a rule and a preference.
- 3D anything
- Perspective makes two equal values look different. There is no case where the third dimension carries data.
- Gauges and speedometers
- An enormous amount of ink for one number, and the dial implies a range that is usually invented.
- Radar charts
- Area scales with the square of the values and the shape changes entirely if you reorder the axes.
- Word clouds
- Size encodes frequency, which is the least interesting thing about a word, and nothing is comparable.
- Pie charts above five slices
- Angles are hard to compare, and beyond five slices the labels leave the chart anyway.
- Per-series arbitrary colour
- Colour means something specific in this product. A series that picks its own hue breaks the meaning everywhere else.
Make one from your own data
You do not choose the form. The analysis works out which question your data can answer and picks the chart that answers it, then tells you why.
No account needed to start. You only pay when you like what you see.