Bar chart vs histogram

tl;drA bar chart shows categorical data — discrete labels, no inherent order. A histogram shows the distribution of one continuous variable, bucketed into ranges. They look similar but communicate different things.
Bar chartHistogram
Data typeCategorical (labels)Continuous (one variable, binned)
X-axisCategories — order is your choiceNumeric ranges — order is fixed
Bars touchNo (gaps between)Yes (no gaps — continuous data)
Question answered"How does each category compare?""What does the distribution look like?"
Sort the bars?Often (descending by default)Never (the order is the bin order)
Bin width mattersNo — bars represent given categoriesYes — wider bins smooth the shape

Categorical vs continuous data

A bar chart is for categorical data: each label is a discrete thing, and the order of bars is something you choose. "Apples, Bananas, Cherries" — there's no natural way "Apples" is bigger than "Cherries". A histogram is for one continuous variable — heights, ages, response times, test scores — that you've grouped into ranges (bins). The bins have a natural order because they're numeric ranges.

Why histograms have no gaps

In a histogram, the variable on the x-axis is continuous — there's no "missing" value between bin 60-70 and bin 70-80. The bars touch to reflect that continuity. In a bar chart, gaps between bars reinforce that categories are separate, unrelated entities.

Bin width is the key histogram decision

Too narrow and your histogram becomes a noisy comb. Too wide and you smooth away real features of the distribution. Common choices: square root of N, Sturges' formula, Freedman-Diaconis rule. For most exploratory histograms, just try a few bin widths and see which one tells the most honest story.

Make this chart on makebarchart.com.

Open the maker

When people get this wrong

Showing test scores as a bar chart with one bar per student is a bar chart, not a histogram — even though it looks similar. To make it a histogram, you'd bin the scores ("60–69", "70–79", "80–89", "90–100") and count how many students fall in each. Same data, different chart, different question.

Tools that conflate them

Excel's default "Bar" type can plot a histogram-like chart, but it doesn't bin for you — you have to count manually first. R, Python (matplotlib, seaborn), and dedicated stats tools have proper histogram functions. If you're looking at distributions seriously, use a stats tool, not a chart maker.