Normal Distribution — Why Everything Forms a Bell Curve

normal distribution explained
Normal Distribution Explained — Why Everything Forms a Bell Curve

Statistics · Mathematics

Heights, exam scores, measurement errors, IQ, shoe sizes, rainfall — almost every naturally occurring dataset organises itself into the same iconic shape. This guide explains why, what the bell curve tells you, and how to use it — with live demos, a z-score calculator, and Python code.

📖 18 min read 📊 Live bell curve builder 🪙 Coin-flip simulation 🧮 Z-score calculator ❓ Quiz included

Section 01

What is a Normal Distribution?

A normal distribution (also called a Gaussian distribution or bell curve) is a way that data arranges itself around a central value — with most values clustered near the middle, and fewer and fewer values appearing as you move toward the extremes.

Plot it on a graph and you get the unmistakable bell shape: perfectly symmetric, peaked in the centre, tapering off equally on both sides. The curve never actually touches the x-axis — it just gets infinitely close at the extremes.

📌 Definition

A normal distribution is fully described by just two numbers: the mean (μ) — where the centre of the bell sits — and the standard deviation (σ) — how wide or narrow the bell is. Change either one and you get a different bell curve.

⚖️

Perfectly Symmetric

The left half is a mirror image of the right. The mean, median, and mode are all equal and sit at the exact centre.

🏔️

Unimodal

There is only one peak — the most common value. Values become progressively rarer as you move away from the centre.

Asymptotic Tails

The curve approaches but never reaches zero. Extreme values are possible — just extraordinarily rare.

📐

Total Area = 1

The area under the entire curve equals exactly 1 (or 100%). This lets us read off probabilities directly from areas.

Section 02

Why Does Nature Produce Bell Curves?

This is the deep question. Why should human heights, leaf sizes, or measurement errors all form a bell? The answer comes from one of the most powerful theorems in all of mathematics: the Central Limit Theorem.

The Central Limit Theorem says: whenever a quantity is the result of many small, independent, random influences added together — the result will be normally distributed, no matter what distribution each individual influence has.

🌿 Why height is normally distributed

Your height is influenced by hundreds of genetic variants, each adding or subtracting a tiny amount. Some push you taller, some shorter, most roughly cancel out. The sum of hundreds of tiny random effects → bell curve. The same logic applies to birth weight, exam scores, and manufacturing tolerances.

The logic in three steps

1

Many independent influences

The outcome is the sum (or average) of many separate random inputs. Human height has ~700 genetic variants each contributing a tiny effect.

2

Most cancel out

For every influence that pushes the result high, there’s usually one pushing it low. The middle outcome (where they mostly balance) is most common.

3

Extremes are rare combinations

Getting an extreme value requires almost all the influences to push the same direction simultaneously — increasingly unlikely the more extreme you go.

Section 03

Interactive: Coin Flips Become a Bell Curve

The clearest way to see the Central Limit Theorem is with coin flips. Flip a coin 10 times and count heads. Do it thousands of times. The histogram of “number of heads” will form a perfect bell curve.

Click Flip & Toss to simulate thousands of experiments. Watch the histogram grow into a bell shape before your eyes.

  Coin Flip Simulation — Central Limit Theorem

💡 What you are seeing

Each bar shows how many times that number of heads appeared. With few trials the bars are jagged and uneven. As you increase trials to 10,000 — the bars smooth into a near-perfect bell. This is the Central Limit Theorem in action.

Section 04

Key Properties of the Normal Distribution

The normal distribution has a precise mathematical formula, but you don’t need to memorise it — you need to understand what its two parameters mean.

📐 The Formula (for reference)

f(x) = (1 / σ√2π) × e−½((x−μ)/σ)²
where μ = mean, σ = standard deviation, e = Euler’s number ≈ 2.718

ParameterSymbolControlsEffect on curve
Mean μ (mu) Centre / location Shifts the bell left or right without changing shape
Standard Deviation σ (sigma) Width / spread Larger σ → flatter, wider bell. Smaller σ → taller, narrower bell
Variance σ² Spread (squared) σ² = σ × σ. Often used in formulas; σ is easier to interpret

⚠️ Mean = Median = Mode

In a perfect normal distribution, all three measures of central tendency are identical and sit at the peak of the bell. This is only true for symmetric distributions — skewed data breaks this equality.

Section 05

Interactive Bell Curve Builder

Drag the sliders to change the mean (μ) and standard deviation (σ). Watch how the bell curve shifts position and changes shape in real time.

  Bell Curve Builder
μ = 50 σ = 10 μ − σ = 40 μ + σ = 60 Range 68%: 40–60

Section 06

The 68-95-99.7 Empirical Rule

One of the most useful facts about the normal distribution is that fixed percentages of data always fall within 1, 2, and 3 standard deviations of the mean — regardless of what μ and σ actually are.

±1σ
Within 1 standard deviation of the mean
68%
68.27%
±2σ
Within 2 standard deviations of the mean
95%
95.45%
±3σ
Within 3 standard deviations of the mean
99.7%
99.73%

Worked Example — Adult Male Heights

Adult male heights in the UK are approximately normally distributed with μ = 175 cm and σ = 7 cm. Using the empirical rule:

RangeHeights% of menInterpretation
μ ± 1σ 168 cm – 182 cm 68.27% About 2 in 3 men
μ ± 2σ 161 cm – 189 cm 95.45% About 19 in 20 men
μ ± 3σ 154 cm – 196 cm 99.73% Nearly all men — only 1 in 370 outside this
Above 196 cm >3σ above mean 0.135% Extremely rare (1 in 740 men)

🏭 Six Sigma in Manufacturing

The famous “Six Sigma” quality standard means keeping defects within ±6 standard deviations — which means only 3.4 defects per million opportunities. This is why the empirical rule matters enormously in engineering and quality control.

Section 07

Z-Scores — Standardising Any Normal Distribution

A z-score tells you how many standard deviations a value is away from the mean. It lets you compare values from completely different normal distributions on the same scale.

z = (x − μ) / σ
x = your value  |  μ = mean  |  σ = standard deviation

What z-scores mean

Z-ScoreMeaningPercentile (approx)
z = 0Exactly at the mean50th percentile
z = +11 std dev above mean~84th percentile
z = −11 std dev below mean~16th percentile
z = +22 std devs above mean~97.7th percentile
z = −22 std devs below mean~2.3rd percentile
z = +33 std devs above mean~99.9th percentile

💡 Why z-scores are useful

A student scored 75 in Maths (μ=60, σ=10) and 82 in English (μ=75, σ=8). Which was the better performance relative to classmates?

Maths z = (75−60)/10 = +1.5  |  English z = (82−75)/8 = +0.875

The Maths score was relatively better — despite being a lower raw mark. Z-scores make this comparison possible.

Section 08

Interactive Z-Score Calculator

Enter any value, mean, and standard deviation to instantly calculate the z-score and see what percentile it corresponds to.

  Z-Score Calculator
z = 0.00

Section 09

Real-World Examples

The normal distribution appears across almost every domain of science, engineering, and everyday life.

📏

Human Heights

Adult heights within a gender and population are normally distributed. UK men: μ=175cm, σ=7cm. The tallest 2.5% are above ~189cm.

🎓

Exam Scores

When a test is well-designed, scores form a bell curve. Many standardised tests (SAT, IQ tests) are deliberately calibrated to produce μ=100, σ=15.

🏭

Manufacturing

A machine making bolts produces diameters that scatter around the target in a bell. Quality control uses σ to decide how many are defective.

📈

Stock Returns

Daily returns on a diversified index approximate a normal distribution. Risk models use σ (volatility) to estimate the probability of large losses.

🌧️

Rainfall & Temperature

Monthly average temperatures at a location over many years form a bell. Climate scientists use deviations from the mean to measure unusual weather.

⚕️

Medical Measurements

Blood pressure, cholesterol, birth weight — most biological measurements are normally distributed. “Normal range” usually means within ±2σ of the mean.

Section 10

When Data is NOT Normally Distributed

Not everything is a bell curve. Recognising when data isn’t normal is just as important as knowing when it is.

DistributionExampleShape
Right-skewed Income, house prices, city populations Long tail to the right. Most people earn little; a few earn millions.
Left-skewed Age at retirement, scores on an easy test Long tail to the left. Most values are high, few are very low.
Bimodal Height of mixed male/female population Two peaks — mixing two separate normal distributions.
Uniform Rolling a die, random number generators Flat — every value equally likely, no central peak.
Exponential Time between customer arrivals, time to equipment failure Drops steeply from zero — short times are far more common.
Power law Social media followers, earthquake magnitudes Extremely heavy tail. A tiny number dominate.

⚠️ Always check before assuming normality

Many statistical tests assume your data is normal. Using them on skewed data gives misleading results. Always plot your data first (histogram or Q-Q plot) and run a normality test like Shapiro-Wilk before applying normal-distribution methods.

Section 11

Python Code

Plotting a bell curve

Python
import numpy as np
import matplotlib.pyplot as plt
from scipy.stats import norm

mu, sigma = 175, 7   # UK male heights: mean=175cm, std=7cm

x = np.linspace(mu - 4*sigma, mu + 4*sigma, 300)
y = norm.pdf(x, mu, sigma)

plt.figure(figsize=(10, 5))
plt.plot(x, y, color='#6366f1', linewidth=2.5)

# Shade the 1σ, 2σ, 3σ regions
for n, color, label in [(1,'#10b981','68%'),(2,'#f59e0b','95%'),(3,'#ef4444','99.7%')]:
    mask = (x >= mu - n*sigma) & (x <= mu + n*sigma)
    plt.fill_between(x, y, where=mask, alpha=0.2, color=color, label=f'{label} within {n}σ')

plt.title('Normal Distribution of UK Male Heights')
plt.xlabel('Height (cm)')
plt.ylabel('Probability Density')
plt.legend()
plt.tight_layout()
plt.show()

Z-scores and probabilities

Python
from scipy.stats import norm

mu, sigma = 175, 7
x = 185

# Z-score
z = (x - mu) / sigma
print(f"Z-score: {z:.2f}")           # → 1.43

# Probability of being BELOW this height
p_below = norm.cdf(x, mu, sigma)
print(f"P(height < 185): {p_below:.1%}")  # → 92.4%

# Probability of being ABOVE this height
p_above = 1 - p_below
print(f"P(height > 185): {p_above:.1%}")  # → 7.6%

# Probability of being BETWEEN two values
p_between = norm.cdf(182, mu, sigma) - norm.cdf(168, mu, sigma)
print(f"P(168 < height < 182): {p_between:.1%}")  # → 68.3%

# What height is at the 90th percentile?
p90 = norm.ppf(0.90, mu, sigma)
print(f"90th percentile height: {p90:.1f} cm")  # → 184.0 cm

Testing if data is normally distributed

Python
from scipy.stats import shapiro, normaltest
import numpy as np

data = np.random.normal(loc=175, scale=7, size=100)

# Shapiro-Wilk test (best for n < 5000)
stat, p = shapiro(data)
print(f"Shapiro-Wilk: stat={stat:.3f}, p={p:.3f}")
# If p > 0.05 → fail to reject normality (data is likely normal)

# D'Agostino K² test
stat2, p2 = normaltest(data)
print(f"Normaltest:   stat={stat2:.3f}, p={p2:.3f}")

# Quick visual check
import scipy.stats as stats
import matplotlib.pyplot as plt
stats.probplot(data, dist="norm", plot=plt)
plt.title("Q-Q Plot — points on the line = normal")
plt.show()

Section 12

Knowledge Quiz

Six questions to test your understanding of the normal distribution.

  Normal Distribution Quiz
Question 1 of 6

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *