Your data
Paste a table straight from Excel or Google Sheets, or drop a CSV file. Nothing is uploaded anywhere — the whole calculation runs inside this browser tab.
CSV, TSV or plain text. Files saved in windows-1251 are detected and re-read automatically, so Cyrillic headers do not turn into garbage.
Parsing options
Columns
Result
Save and share
The drawing library is downloaded only when you press the button, and only on this page.
This page has no server side at all. The table you paste is parsed by JavaScript inside your own browser, the chart is drawn on a canvas element on your machine, and the export file is assembled locally. Nothing is uploaded, stored or written to any log. You can disconnect from the network after the page has loaded and everything will still work — which is the simplest way to verify the claim yourself.
Facts and limits of this method
| Binning rule | Freedman–Diaconis: width = 2 · IQR / ∛n |
|---|---|
| Fallback rule | Sturges (log₂ n + 1) when the IQR is zero — many repeated values |
| Bin limit | Capped at 60 bins regardless of what the rule suggests |
| Bar spacing | Zero — bars touch, because the horizontal axis is continuous |
| Boundary handling | Intervals are half-open; the maximum is placed in the last bin |
| Output | PNG at 2× scale, plus a CSV of intervals with counts and shares |
When it misleads you
- The bin width changes the story. The same data with eight bins can look unimodal and with forty bins can reveal two peaks — or manufacture noise that is not there. Automatic binning is a defensible default, not a guarantee.
- Small samples cannot support a histogram. Below about 30 values the bars mostly report which side of an arbitrary boundary each observation landed on, and the shape you see is noise.
- Bars touching means the axis is continuous. If your column holds categories rather than measurements, this is the wrong chart — use the frequency table, which counts distinct values instead of intervals.
- Counts hide sample size in comparisons. Two histograms with different totals cannot be compared bar-to-bar; convert to shares first, which the exported table already includes.
How it is calculated
The bin width is chosen by the Freedman–Diaconis rule: twice the interquartile range divided by the cube root of the count. It is used rather than the more famous Sturges rule because it is built on the IQR, which means a single extreme value does not stretch every bin in the histogram.
When the interquartile range is zero — which happens when more than half the values are identical — the rule would divide by zero, so the tool falls back to Sturges. That case usually means the column is really categorical and the frequency table is a better fit.
Bars are drawn with no gap between them. That is not a style choice: a gap signals a categorical axis, and a histogram measures a continuous one. Every chart library defaults to gaps, so this has to be set explicitly.
Intervals are half-open, meaning a value equal to a boundary falls into the higher bin. The single exception is the maximum, which would otherwise fall outside every interval and be silently dropped from the chart.
Questions and answers
Can I choose the number of bins myself?
Not on this page — the rule is applied automatically so that the same data always produces the same picture. If you need to experiment with bin widths, export the values and do it in a spreadsheet where the choice is visibly yours.
Why is my histogram just one tall bar?
Because one extreme value stretched the axis. The bin containing everything else is now as wide as the entire normal range. Remove the outlier — the detection tool will find it — and redraw.
Histogram or box plot?
A histogram shows the shape, including multiple peaks. A box plot shows position and outliers compactly and is better for comparing several groups. They answer different questions and are often drawn together.
My data is categories, not measurements.
Then use the frequency table instead. A histogram assumes the horizontal axis is a continuous number line, and grouping categories into intervals is meaningless.
Is my data uploaded?
No. Binning and drawing both happen in your browser.