Written and maintained by CASRAI Editorial Board
Last updated
SPSS can draw a histogram with a normal curve overlaid on top of it from three different places — Chart Builder, Graphs > Legacy Dialogs > Histogram, and the Frequencies procedure’s Charts button — and each one exposes the same underlying option, a checkbox that fits a normal curve to your sample’s own mean and standard deviation and draws it over the bars. What that overlay is good for is easy to overstate: it’s a quick visual first pass, not a substitute for a formal normality check, and reading it correctly means knowing what a “close enough” or “clearly off” match actually does and doesn’t tell you.
Three routes to the same checkbox
All three paths add the identical element — a normal curve fitted to the variable’s own mean and SD, not to some fixed reference distribution — so which one to use is mostly about what else you need out of the same run.
Legacy Dialogs: fastest for a single quick chart
Go to Graphs > Legacy Dialogs > Histogram. Move your variable into the Variable box, check Display normal curve near the bottom of the dialog, and click OK. This is the shortest path when a histogram is the only output you want from this run — no other statistics, no other charts.
Chart Builder: most control, easiest to keep editing
Go to Graphs > Chart Builder. In the Gallery tab, choose Histogram and drag the Simple Histogram icon onto the canvas, then drag your variable onto the x-axis drop zone. Open Element Properties (it usually opens automatically alongside the Chart Builder dialog; if not, click the button of the same name), select the histogram element, and on the Statistics panel check Display normal curve. Click Apply, then OK. Because Chart Builder and the Chart Editor (see below) share the same Element Properties panel, a chart built this way is the easiest of the three to keep adjusting after the fact.
Frequencies: bundles the histogram with the statistics you’re probably already running
Go to Analyze > Descriptive Statistics > Frequencies, move the variable into the Variable(s) list, and click Charts. Select the Histograms radio button, which enables a Show normal curve on histogram checkbox directly beneath it — check it, click Continue, then OK. This is the route worth using when you’re already pulling descriptive statistics for the same variable, since the histogram comes out alongside the frequency table and summary statistics in one pass instead of a separate run. If a continuous variable would otherwise produce a frequency table hundreds of rows long, uncheck Display frequency tables in the main Frequencies dialog first and let the Charts option do the visual work instead.
Adjusting bin width after the chart already exists
Double-click any histogram in the Output Viewer to open it in the Chart Editor. Double-click the bars themselves to open their Properties window, and switch to the Binning tab: the default is SPSS’s automatic bin selection, but you can switch to Custom and set either a fixed interval width or a fixed number of intervals. This matters more than it looks — a normal curve overlay is compared against whatever binning is currently on screen, and a bin width that’s too coarse can smooth a genuinely skewed or bimodal shape into something that looks deceptively curve-like, while one that’s too narrow can make bars from a truly normal variable look ragged and mismatched. If the fit against the curve looks borderline, try one or two other bin widths before trusting the visual read. The same Chart Editor session also carries the Element Properties panel from Chart Builder, so the normal curve itself can be added or removed there without rebuilding the chart from scratch.
What a visual mismatch actually tells you — and what it doesn’t
The histogram-with-curve overlay is a description of shape, not a statistical decision. Three things are worth being explicit about before treating “the bars roughly follow the curve” as an answer:
- It’s not testing your data against anything external. The curve is fitted to your own sample’s mean and standard deviation, so a badly non-normal variable can still produce a curve that traces its own general hump — the comparison is “does this batch of bars look like a bell shape,” not “does this variable match a population-level normal distribution.”
- The read changes with bin width and sample size. The same underlying data can look convincingly normal at one bin width and visibly skewed at another (see above), and small samples produce enough random jaggedness in the bars that a real departure from normality can be genuinely hard to see by eye — while large samples make even trivial, practically meaningless deviations visually obvious.
- “Looks fine” and “is fine” diverge in exactly the cases that matter most. At large n, a formal test like Shapiro-Wilk or the Lilliefors-corrected Kolmogorov-Smirnov test can flag a deviation from normality that’s statistically significant but too small to visually notice or practically care about; at small n, the opposite happens — the same tests can be too underpowered to catch a departure the histogram makes visually obvious. Reading a visual overlay and a formal test against each other, rather than trusting either alone, is the actual point; see testing normality in SPSS for where SPSS runs those tests, how the sample-size cutoff decides which one it prints by default, and how to read the accompanying Q-Q plot.
In practice, a histogram with the normal curve overlaid is best used as a fast, intuitive first look — catching an obviously wrong variable (miscoded categories plotted as if continuous, a variable that’s actually bimodal because it secretly contains two groups) before you run anything else — and then followed by a formal test and a Q-Q plot when the actual decision (which test to run, whether to transform the variable) depends on getting the normality call right, such as before an independent-samples t-test or a Pearson correlation.
Choosing between the three routes
| Route | Where the checkbox lives | Best when |
|---|---|---|
| Legacy Dialogs > Histogram | Bottom of the main dialog: Display normal curve | You want one histogram and nothing else from this run |
| Chart Builder | Element Properties > Statistics tab: Display normal curve | You’ll likely keep adjusting the chart (bin width, titles, axis scaling) afterward |
| Frequencies > Charts | Charts subdialog: Show normal curve on histogram, enabled once Histograms is selected | You’re already running Frequencies on the variable and want the chart bundled with the same output |
Frequently asked questions
Does the normal curve overlay run a normality test?
No. It’s a purely descriptive element — SPSS fits a normal curve using your sample’s own mean and standard deviation and draws it over the bars. No p-value, test statistic, or hypothesis test is involved; for that, run Shapiro-Wilk or Kolmogorov-Smirnov through Analyze > Descriptive Statistics > Explore instead, covered in testing normality in SPSS.
My histogram looks non-normal but Shapiro-Wilk says the deviation isn’t significant — which do I believe?
At small sample sizes this is a common, expected disagreement: Shapiro-Wilk has limited power to detect non-normality when n is small, so a genuinely lumpy-looking histogram can still produce a non-significant test result. Look at the actual shape (skew direction, outliers, obvious multimodality) rather than trusting the p-value alone, and weigh how sensitive your downstream analysis actually is to the normality assumption.
Can I change the bin width after the chart is already built?
Yes. Double-click the chart to open the Chart Editor, double-click the bars to open their Properties window, and use the Binning tab to switch from automatic binning to a custom interval width or a custom number of intervals.
Does the overlay use my variable’s actual mean and standard deviation, or a fixed reference curve?
Your variable’s own values. The curve SPSS draws is a normal distribution parameterized by whatever mean and standard deviation your sample actually has — it will shift and stretch to match your data, which is exactly why it can’t function as a test against an external standard.
Which of the three routes should I default to?
Legacy Dialogs if a histogram is genuinely the only output you want; Frequencies if you’re already pulling descriptive statistics for the same variable and want the chart in the same run; Chart Builder if you expect to keep adjusting bin width, labels, or styling afterward, since it shares its Element Properties panel with the Chart Editor.








