Pick Histograms for Distribution, Bar Charts for Comparison

Histogram or bar chart? Learn the one deciding question — distribution versus comparison — plus clear examples, gray-zone cases, and mistakes to avoid.

Overview

Use a histogram when you want to see how one numeric variable is distributed — where values cluster, spread, or trail off. Use a bar chart when you want to compare values across distinct categories such as products, teams, or regions. The deciding factor is your question: distribution points to a histogram, comparison points to a bar chart.

The two charts look alike because both draw rectangles, which is exactly why the choice trips up so many people. As Storytelling with Data puts it, histograms visualize quantitative or numerical data, whereas bar charts display categorical variables — and the main reason to use a histogram is to understand the underlying distribution of a numerical data series. This article turns that rule into a practical decision guide, including the ambiguous cases where the simple rule is not enough.

The core difference is the question you are asking

Before you look at your data types, name the question you want the chart to answer. If the question is “what does the spread of this one numeric measure look like?”, you are asking a distribution question. If the question is “which group is biggest, smallest, or most different?”, you are asking a comparison or ranking question. The same spreadsheet can support both questions, so the chart choice follows the question, not just the column format.

This framing resolves most confusion faster than memorizing formatting rules. A column of order values can become a histogram (how are order sizes distributed?) or a bar chart (what is total revenue per region?). Decide what you want the reader to learn first, then pick the chart that answers it.

Use a histogram for distribution questions

A histogram groups numeric values into consecutive intervals called bins and shows how many values fall into each one, which is why histograms display the frequency distribution of continuous numerical data. The resulting shape tells you things a single summary number cannot: whether values cluster around a center, skew toward one tail, split into multiple clusters, or contain outliers and gaps. If your takeaway depends on shape, spread, skew, or tail behavior, a histogram is the right starting point.

Use a bar chart for category comparison

A bar chart compares a value across distinct groups — each bar stands for one category, such as a product line, a survey answer, a team, or a country. The reader’s job is to compare bar lengths, so the chart works best when categories are clearly separate and the value per category is well defined. If your takeaway is “A is larger than B” or “these are the top five,” a bar chart answers it directly.

Quick decision matrix: histogram or bar chart

When you are unsure whether to reach for a histogram or bar chart, run your situation down this matrix. It condenses the criteria that competitors’ rules of thumb usually leave implicit: the question, the data type, what each axis means, and the visual conventions that follow from them.

Criterion Histogram Bar chart
Question you’re answering How is one numeric variable distributed? How do categories compare or rank?
Data on the x-axis Continuous numeric ranges (bins) Distinct categories or groups
Y-axis meaning Count, frequency, percentage, or density per bin Value per category (count, total, average, percentage)
Bar spacing Bars touch — bins are adjacent ranges Gaps between bars — categories are separate
Ordering Fixed by the numeric scale Sortable by value, unless categories have inherent order
Typical examples Exam scores, response times, ages, transaction amounts Sales by region, votes by candidate, tickets by team

If a row pulls you in both directions — for example, your x-axis values are numbers but they function as labels — you are in one of the ambiguous cases covered later in this article. Resolve those by the meaning of the variable and the interpretation you intend, not by the column’s format alone.

What a histogram shows

A histogram shows the shape of one numeric variable by counting how many values land in each interval. It groups data into intervals called bins, plots the bins along the x-axis in numeric order, and draws a bar whose height reflects how many observations fall in each bin. Because adjacent bins share boundaries, histogram bars touch each other, usually with no gaps — the touching bars signal that the underlying scale is continuous.

That visual convention carries meaning. Touching bars tell the reader “these ranges connect end to end,” so a gap in a histogram is itself information: it means no values fell in that range. Reading a histogram is about the overall silhouette — center, spread, skew, clusters, and outliers — rather than any single bar.

Bins turn numeric values into ranges

Bins are the intervals that slice a numeric range into countable segments, and choosing them is the most consequential decision in building a histogram. ThoughtSpot’s example illustrates the standard setup: data ranging from 1 to 100 can use 10 bins, producing intervals like 1–10 and 11–20. Wider bins produce a smoother, coarser picture; narrower bins show more detail but can amplify noise.

Because bin width, bin count, and bin boundaries all shape what the reader sees, document them whenever the histogram supports a decision. Two honest histograms of the same data can emphasize different features simply because their bins differ — a risk covered in more depth later in this guide.

The y-axis can show count, frequency, percentage, or density

The height of a histogram bar can represent several related things, and the axis label determines how the chart should be read. A count axis shows the raw number of observations per bin; frequency is often used interchangeably with count. A percentage axis shows each bin’s share of the total, which is useful when comparing distributions from samples of different sizes. Density scales bar area so the whole histogram sums to one, which matters mainly when bins have unequal widths.

For most beginner-to-intermediate uses, count or percentage is the right choice, and the practical rule is simple: label the y-axis explicitly. A histogram whose axis just says “value” invites misreading, especially when the chart is shared beyond the person who built it.

What a bar chart shows

A bar chart shows one value per category so readers can compare groups at a glance. Bar graphs display categorical data — each bar represents a distinct group, and bar length encodes that group’s value. Unlike a histogram, bar graphs include clear gaps between bars, because the categories are separate things rather than adjacent slices of one numeric scale.

Ordering is also different. Since most categories have no inherent sequence, you can usually sort bars by value to make ranking obvious. The exception is ordered categories — months, severity levels, rating scales — where reordering by value would break the meaning. Sort nominal categories by size; keep ordinal categories in their natural order.

Bar chart, bar graph, and column chart terminology

If you have seen “bar chart,” “bar graph,” and “column chart” used near each other, the good news is that they describe close variants of the same idea. Bar chart and bar graph are generally interchangeable terms for the category-comparison chart discussed here. Column chart commonly refers to the vertical orientation — bars rising from the x-axis — while “bar chart” is sometimes reserved for horizontal bars, which handle long category labels better.

None of these variants changes the histogram-versus-bar-chart decision. Whether the bars run vertically or horizontally, the chart still compares categories; only a histogram represents binned intervals of one numeric variable.

Bar charts can show counts, percentages, totals, or averages

A bar chart’s y-axis is not limited to raw counts — bars can encode totals, averages, percentages, rates, or any aggregated value per category. A bar chart of “average response time by team” and a bar chart of “number of tickets by team” look structurally identical, but they answer different questions and carry different risks. Averages in particular can hide skew and outliers that a histogram would expose.

The requirement is that both the category definition and the aggregation method are stated plainly. “Revenue by region (sum, 2024)” is a trustworthy label; an unlabeled bar height forces the reader to guess whether they are seeing a count, a mean, or a share.

Worked example: the same data can answer two different questions

Consider a small, concrete scenario: a support team logs first-response times, in minutes, for 20 tickets in one week — 6, 8, 9, 11, 12, 12, 14, 15, 16, 18, 19, 21, 22, 25, 28, 31, 34, 42, 95, and 140. Ten tickets came from Team A and ten from Team B. The same 20 numbers can honestly feed either chart, and each chart answers a different question.

This is the kind of column you can explore directly from a spreadsheet: on TablePage, you can drag and drop CSV, TSV, XLSX, or XLS files and it instantly generates a public dataset page where anyone can explore charts, insights, and a filterable table — no signup needed. Trying the same column both ways takes minutes, which makes it easy to check which view actually supports your intended takeaway before you share it.

As a histogram, the data shows shape and spread

Binned into 20-minute intervals (0–20, 21–40, 41–60, and so on), the histogram shows 11 tickets in the first bin, 6 in the second, 1 in the third, empty bins in the middle, and 2 isolated values out at 95 and 140 minutes. The shape is strongly right-skewed: most responses are fast, but a long tail exists. Those two tail tickets are the operational story — the customers who waited over an hour and a half — and only the distribution view surfaces them as distinct from “typical” performance.

As a bar chart, the data compares defined groups

Grouped by team instead, a bar chart of average response time might show Team A at roughly 22 minutes and Team B at roughly 34 minutes. That chart answers a legitimate comparison question — which team responds faster on average — but it silently absorbs the 95- and 140-minute outliers into one team’s mean. Neither chart is wrong; they answer different questions. The failure mode is presenting the bar chart of averages as if it answered the distribution question, when the skew and tail risk were never shown.

Ambiguous cases where the simple rule is not enough

The rule “categories get bar charts, continuous numbers get histograms” covers most datasets but leaves real gaps: ordered ratings, numeric-looking labels, pre-grouped ranges, and discrete counts all sit in the middle. In these cases, decide by three tests — what the values mean, whether their order matters, and what interpretation you want the reader to walk away with.

The subsections below work through the three edge cases readers hit most often. In each one, the resolution comes from the variable’s meaning rather than its format.

Ratings and Likert scales

A 1–5 satisfaction rating is discrete, ordered, and small in range, which puts it between the two chart types. In most reporting contexts, treating each rating as a labeled category in a bar chart is the safer choice: keep the bars in scale order (never sorted by height), and readers can see the response profile directly. A histogram-style view can still be useful when you genuinely care about distributional shape — for example, spotting a polarized, two-peaked response pattern — but with only five possible values, the “bins” are just the ratings themselves. Practically, an ordered bar chart with one bar per rating serves both needs for most audiences.

Ages, dates, and pre-binned ranges

Raw ages are continuous numeric data, so exploring them calls for a histogram — that is how you see whether your users cluster in their twenties or spread evenly across decades. Once ages arrive pre-grouped into labeled bands like “18–24” and “25–34,” you are effectively working with categories that happen to describe numeric ranges; a bar chart in band order is the natural rendering, though keeping bands in numeric order preserves the de facto distribution reading. Dates are different again: values over time usually want a line chart or time-ordered bars showing a trend, not a histogram, unless your question is specifically “how are values distributed regardless of when they occurred.”

ZIP codes, IDs, and numeric labels

Postal codes, product IDs, account numbers, and similar fields look numeric but are labels: the “distance” between two ZIP codes carries no meaning, and averaging or binning them produces nonsense. Treat them as categories. If a numeric-looking column would never be sensibly averaged, it should never be binned into a histogram either. The practical test is simple — ask whether arithmetic on the values means anything. If not, it is a bar chart candidate (or, at high cardinality, a candidate for a table or map instead).

How histogram bins can change the story

Binning is the histogram’s power and its main risk: the same data can look smooth, noisy, or bimodal depending on how you slice it. Too few bins flatten real structure — a two-cluster distribution can collapse into one broad hump when bins are wide. Too many bins fragment the picture into spiky noise, inviting readers to see patterns that are just sampling variation. And shifting bin boundaries can move borderline values between bins, changing which bar looks tallest even though nothing in the data changed.

There is no single correct bin count; a range like 10 bins for data spanning 1 to 100 is a reasonable starting point, not a law. The defensible practice is to try a few bin widths, check whether your conclusion survives the changes, and state the bin width on or near the chart. If a finding appears only under one specific binning, treat it as fragile. When a histogram feeds an operational decision — thresholds, alerts, targets — document the binning choice so the next person can reproduce, and challenge, what you saw.

When neither a histogram nor a bar chart is the best choice

Some questions are poorly served by both charts, and forcing one anyway is a common source of confusing visuals. Values tracked over time usually want a line chart, because the reader’s question is about trend and change, not distribution or ranking. Other situations have better-fitting alternatives too.

  • Trends over time — a line chart shows direction and change more clearly than time-bucketed bars.
  • Very small samples — a dot plot showing individual points avoids the artificial patterns that bins can create with only a handful of values.
  • Comparing distributions across groups — box plots summarize center, spread, and outliers for many groups side by side, where multiple histograms would compete for space.
  • Two-dimensional patterns — a heatmap shows how values vary across two variables at once.

High-cardinality categories deserve a special mention: a bar chart with 80 bars is unreadable, and coercing the categories into numeric bins blurs the meaning. Filter to the top groups, aggregate the rest, or present a searchable table instead — a published TablePage dataset like the Electoral Democracy Index (1789–2025) shows how a filterable table can carry many-category detail that no single bar chart could.

Checklist before you publish or share the chart

Before a chart goes into a report, dashboard, or shared dataset page, a short validation pass catches most of the failure modes discussed above. Run through these checks in order.

  • State the question. Write the takeaway sentence first — distribution questions get histograms, comparison questions get bar charts.
  • Confirm the variable’s meaning. Is it truly numeric and continuous, an ordered scale, or a numeric-looking label?
  • Document aggregation and bins. Note the bin width and boundaries for histograms, and the aggregation method (sum, mean, count, percent) for bar charts.
  • Label both axes honestly. Count, percentage, average, and density are different claims; the label should say which one the chart makes.
  • Check ordering. Sort nominal categories by value; keep ordinal scales and numeric bins in natural order.
  • Test whether the chart supports the takeaway. If your conclusion changes when you re-bin or re-aggregate, the conclusion is fragile — say so or dig deeper.

If the chart passes all six checks, it is ready to share. If it fails one, the fix is usually cheap — a relabeled axis, a reordered scale, or a switch to the other chart type — and far cheaper than a misled reader.

Common mistakes to avoid

Most histogram and bar chart failures fall into a handful of repeatable patterns, and knowing them is faster than rediscovering each one in a review meeting. The deepest mistake is answering a distribution question with a bar chart of averages: the means look tidy while skew, outliers, and tail risk stay invisible, as the worked example above showed.

  • Binning labels. Treating IDs, ZIP codes, or other numeric labels as continuous values and binning or averaging them.
  • Over- or under-binning. Choosing bins so narrow the histogram reads as noise, or so wide that real clusters disappear.
  • Sorting ordered scales by value. Rearranging Likert responses or severity levels by bar height, which destroys the scale’s meaning.
  • Unlabeled axes. Leaving the reader to guess whether a bar height is a count, an average, or a percentage.
  • Undisclosed bin changes. Editing bin boundaries between report versions without noting it, so apparent changes in the data are actually changes in the chart.

None of these mistakes requires bad intent — they come from defaults, template reuse, and time pressure. The checklist in the previous section exists precisely to catch them before publication.

FAQs

Should I use a histogram or bar chart if my data uses numbers as labels? A bar chart. Numbers that identify things — IDs, codes, jersey numbers — are categories, not quantities, and binning or averaging them produces meaningless results.

Can a histogram be used for discrete data, or only continuous data? Histograms are most naturally suited to continuous numerical data, but discrete numeric data with many possible values (like integer counts spanning a wide range) can reasonably be binned into a histogram. When the discrete scale has only a few values, an ordered bar chart is usually clearer.

Why do histogram bars touch but bar chart bars have gaps? Histogram bars touch because each bar is an interval on a continuous scale, and adjacent intervals share a boundary. Bar chart bars have gaps because each bar is a separate category with no scale connecting it to its neighbors.

How many bins should a histogram have? There is no universal answer; 10 bins for data ranging 1 to 100 is a common starting point. Try a few widths and keep the one where your data’s real structure is visible without spiky noise — and note the choice on the chart.

Can a bar chart show percentages instead of counts? Yes. Bars can encode counts, totals, averages, or percentages; just label the axis so readers know which claim the chart is making.

Is age better shown as a histogram or a bar chart? Raw ages: histogram, to see the distribution. Pre-defined age bands: a bar chart with the bands kept in numeric order.

When is a box plot better than a histogram? When you need to compare distributions across several groups at once. Box plots compress each group’s center, spread, and outliers into one compact mark, where side-by-side histograms would be hard to read.

How can I audit a dashboard to find bar charts that should actually be histograms? Look for bar charts of averages over metrics where variability matters — response times, transaction amounts, durations — and re-plot the underlying column as a histogram. If the distribution is skewed or has a heavy tail, the average-based bars were hiding it. A quick way to run that check is to load the raw column into a tool built for exploration: TablePage generates a public dataset page from an uploaded spreadsheet, with charts and a filterable table that anyone can explore without signing up, so the distribution check can be shared with the chart’s owner as a link rather than an argument.

Drop to create a new dataset CSV, TSV, or Excel
Uploading...

Upload your own dataset

Explore any CSV with AI insights, charts & filters. Free, no account needed.