Bar chart vs histogram
| Bar chart | Histogram | |
|---|---|---|
| Data type | Categorical (labels) | Continuous (one variable, binned) |
| X-axis | Categories — order is your choice | Numeric ranges — order is fixed |
| Bars touch | No (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 matters | No — bars represent given categories | Yes — 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 makerWhen 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.