Sorting bar charts

tl;drDefault to descending. Override only when categories have an inherent order (chronological, scale, alphabetical lookup). Random or input order is almost always wrong — it makes the reader do the sorting.

Why descending is the default

A bar chart's job is to make comparison effortless. Sorting descending puts the largest value first; the reader's eye follows the bar lengths down and the dominant pattern is immediately visible. Without sorting, the reader has to scan every bar and mentally rank them, which is the work the chart was supposed to do.

When natural order wins

Time-series: months, quarters, years go in calendar order. Likert scales: "Strongly disagree → Strongly agree" reads in scale order, not by frequency. Age groups: 18-24, 25-34, 35-44 etc. Anywhere the reader has a strong expectation about order, follow it.

Bar chartCharlie32Alpha78Echo14Bravo56020406080100
Example chart

Alphabetical: when readers look up names

If the chart is a directory — e.g., "spending by employee", "sales by salesperson", "tickets by team" — alphabetical sort lets readers find a specific row quickly. Use it when the chart will be scanned for one item, not analyzed as a whole.

Make this chart on makebarchart.com.

Open the maker

Ascending: when the headline is "the smallest"

Rare, but legitimate. If the message is "look at the bottom-five performers", ascending sort puts those at the top. Same rule as descending: the order should put the headline first.

Sort key matters in stacked charts

In a stacked or grouped bar chart, sorting by total puts the biggest categories first. Sorting by one of the sub-segments is also fair, especially if that segment is the headline ("rank by share of Strongly agree"). Sort by the dimension your story is about.

The "as entered" pseudo-sort

If you accept the data's input order without thinking about it, you've made a sort decision by default — usually a bad one. Always re-ask: "what order tells the story fastest?" The answer is rarely "the order I happened to type."