Hover any bar for exact count Switch dataset Toggle overlay mode Arrow keys navigate age bands
A population pyramid is two back-to-back horizontal bar charts sharing a common categorical y-axis of age bands. Female bars extend leftward; male bars extend rightward. The x-axis encodes either absolute count or percentage of total population. The overall silhouette — the outline formed by all bar ends — is the primary signal: a wide base tapering to a narrow top indicates high fertility and high mortality (expansive, developing); a near-uniform column indicates stable fertility and mortality (stationary, developed); a narrow base widening in middle age then tapering indicates an ageing population with declining fertility (constrictive). This silhouette reading is the key perceptual advantage over a table: demographic structure becomes a shape, not a number.
The data is a bivariate categorical distribution — age band crossed with sex — and the message is about demographic structure, not a specific value comparison. A grouped bar chart could show the same numbers but would lose the bilateral symmetry convention that allows immediate sex-ratio reading at each age band. A stacked bar chart across age bands would collapse the male/female distinction. The back-to-back layout exploits the viewer's bilateral symmetry detection: any horizontal imbalance between left and right bars is immediately visible as a sex-ratio anomaly — war cohort gaps, female longevity advantage in older bands, and selective migration effects are all apparent before any number is read. No other chart type makes this comparison as effortless.
A standard histogram for each sex in separate panels would work but requires the viewer to mentally align two separate scales. The back-to-back layout enforces shared axes, which is precisely what makes silhouette comparison possible. An area chart of population over age for each sex would show the distribution shape but lose the discreteness of age-band counts, which matters for policy planning (pension age thresholds, school cohort sizing). A line chart across age bands would imply continuity between categorical bins — age bands are ordered but not continuous in the same way that years are, and bar encoding correctly communicates that each band is a distinct count.
FT Visual Vocabulary category: Distribution — "Show the range and concentration of values in a dataset, here bivariate (age × sex)." Abela quadrant: Distribution / Comparison (comparing two distributions across the same ordered categories). The one design decision worth knowing: the x-axis is mirrored — female values are positive numbers plotted leftward using a reversed scale, not negative numbers. This keeps the axis labels positive and avoids the cognitive double-negation of reading "negative population." D3 implements this with two separate linear scales sharing the same domain [0, maxVal], with the female scale's range reversed.