cassionData Analysis

Lesson 4 of 8

Unit · Conventions your reader already has

The map cannot show the interval

A choropleth of twelve communes puts the whole finding into colour intensity, which is the weakest encoding, and has nowhere to put the confidence interval that decided the finding. Twelve small charts show both. The map is right when the question is where, and only then.

PythonR135 minSMART surveyIntegrated Food Security Phase Classification (IPC)UNICEF indicator definitions

What the map would have to leave out

The last two lessons established that three of twelve communes have GAM intervals clearing the district median, and that eleven of eleven adjacent pairs overlap. Draw that as a choropleth and ask what happened to it.

The finding On a sorted bar chart On a choropleth
Anse-Rouge is 15.3% A bar length, read directly A shade, read against a legend
Its interval runs 10.9–20.6 A whisker Nowhere
Three communes clear the median Three highlighted bars A second map, or nothing
Eleven pairs overlap Visible in the whiskers Nowhere
Gonaives has 768 screenings, Desdunes 189 A note, or a second panel Nowhere

A choropleth has one channel and the analysis produced four numbers per commune. Everything except the point estimate has to go somewhere else or be dropped, and in practice it is dropped.

And the one channel it has is the weakest. Colour intensity ranks fifth of six for how accurately a reader decodes it; a bar’s length ranks second.

The area problem

areas = {"Gonaives": 502, "Anse-Rouge": 425, "Desdunes": 76, "Marmelade": 152}
# Visual weight is area. The finding is prevalence. These are unrelated.

A choropleth gives each commune visual weight proportional to its land area, which has nothing to do with its population, its caseload or its prevalence. A large sparsely-populated commune dominates a map that a bar chart would have put in the middle.

This is not a technicality in this sector. Rural communes are large and urban ones small, so a map of a health indicator systematically over-weights the rural cases and under-weights the place most of the children live.

When a map is the right chart

There are three, and they are worth being precise about because “we need a map” is usually a request for a map rather than a question about geography.

When the question is genuinely spatial. Where the flooding is. Which camps are within an hour of a functioning water point. Whether the unserved villages are contiguous or scattered — a question a bar chart cannot answer at all.

When the audience navigates by geography. A district health officer finds their own area on a map faster than in an alphabetical list, and that is a real cost saved.

When adjacency is the finding. Disease spread, market catchment, a cluster of non-functional water points along one road.

Otherwise, sort a bar chart. “Which communes are worst” is a ranking question, and a ranking is what a sorted bar chart is for.

Small multiples

The alternative to one map is twelve small charts, and it is stronger than it sounds.

import matplotlib.pyplot as plt

fig, axes = plt.subplots(3, 4, figsize=(10, 6), sharex=True, sharey=True)
for ax, (commune, series) in zip(axes.flat, monthly.groupby("commune")):
    ax.plot(series["month"], series["gam"])
    ax.set_title(commune, fontsize=9)
    ax.axhline(0.10, linestyle="--", linewidth=0.8)   # the same reference on each
ggplot(monthly, aes(month, gam)) +
  geom_line() +
  geom_hline(yintercept = 0.10, linetype = "dashed") +
  facet_wrap(~commune, ncol = 4)

Four rules, and breaking any of them turns twelve charts back into twelve unrelated charts.

Shared axes, always. If each panel scales to its own data the reader is comparing shapes drawn at twelve different magnifications, which is worse than no comparison.

Same reference line on every panel. It is what the eye travels along.

Order the panels by something. By value, by geography, by the order the reader will look for them. Alphabetical is the default and is almost never the useful one.

One shape, learned once. The reader decodes the first panel and then reads eleven more for free — which is the whole efficiency of the form and the reason it beats a map for a comparison question.

The chart a request for a map usually wants

Three substitutions that satisfy the underlying question at lower cost.

The request What it usually wants Give them
“A map of GAM by commune” Which communes to target Sorted bar chart with intervals
“A map of the water points” How many work, and where the failures cluster A bar chart by district, plus a map only if clustering is the question
“A map of the caseload” Where the people are A map of rates, never counts

A choropleth of counts is a population map. It shows where people live, in every dataset, every time — because the count is the population times the rate and the population varies more. Map rates, or map nothing.

If you do draw the map

Four things it needs, and a map without them is worse than the bar chart it replaced.

Rates, not counts, for the reason above.

A stated class scheme. Quantiles, equal intervals, or the sector’s own thresholds. Quantiles guarantee that a fifth of areas are in the worst class whatever the data says; equal intervals let one outlier flatten everything else. IPC phases and MUAC bands are class schemes with meaning, and where they apply they beat both.

The denominator on the page. A commune shaded dark on 189 screenings and one shaded dark on 768 are not the same claim, and the map cannot tell them apart.

A companion chart. The map answers where; the sorted bar chart with intervals answers how much and how sure. Publishing both costs one extra panel and is what lets the map be read safely.

Report it whole

Global acute malnutrition by commune: presentation

  Reported as a sorted bar chart with 95% intervals rather than as a
  choropleth. The finding is a ranking with substantial uncertainty, and a
  choropleth has one visual channel, which the point estimate occupies.

  Eleven of eleven adjacent communes have overlapping intervals; a map would
  show twelve distinct shades and imply twelve distinguishable levels.

  A commune map is included in Annex C for navigation, showing rates and not
  counts, with the number of screenings labelled on each commune and the
  same class breaks as the bar chart.

The last paragraph is the compromise that usually holds: the map exists, for the people who navigate by it, and it carries the denominators so it cannot be read as more than it is.

What comes next

Everything so far has assumed the reader sees the chart in colour, at full size, on a screen. The next lesson prints it in greyscale, projects it in a room with the lights on, and hands it to someone who cannot distinguish the two hues.

Teach this lesson

The lesson as a slide deck, with the prose kept in the speaker notes rather than on the slide. Generated from this page, so it cannot fall out of step with it.

Start the slideshowRead the slides

The PDF needs no software and projects from any machine. The PowerPoint file is there to be edited — add your organisation's branding, cut a section for a shorter session, or merge two lessons into a workshop.