cassionData Analysis

Back to the lessonLesson 4 of 8Conventions your reader already has

The map cannot show the interval

The same deck as the downloads, rendered as a page. Start the slideshow to present it full screen — arrow keys or a click advance one slide, Escape leaves.

Slides · PDFSlides · PowerPoint

  1. Slide 1 / 17

    What this lesson covers

    • What the map would have to leave out
    • The area problem
    • When a map is the right chart
    • Small multiples
    • The chart a request for a map usually wants
    • If you do draw the map
    • Report it whole
    • What comes next
    Speaker notes
    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.
  2. Slide 2 / 17

    What the map would have to leave out

    The findingOn a sorted bar chartOn a choropleth
    Anse-Rouge is 15.3%A bar length, read directlyA shade, read against a legend
    Its interval runs 10.9–20.6A whiskerNowhere
    Three communes clear the medianThree highlighted barsA second map, or nothing
    Eleven pairs overlapVisible in the whiskersNowhere
    Gonaives has 768 screenings, Desdunes 189A note, or a second panelNowhere
    Speaker notes
    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.
  3. Slide 3 / 17

    What the map would have to leave out

    • A choropleth has one channel and the analysis produced four numbers per commune — Everything except the point estimate…
    • And the one channel it has is the weakest — Colour intensity ranks fifth of six for how accurately a reader decodes it;…
    Speaker notes
    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.
  4. Slide 4 / 17

    The area problem — In Python

    areas = {"Gonaives": 502, "Anse-Rouge": 425, "Desdunes": 76, "Marmelade": 152}
  5. Slide 5 / 17

    The area problem — In R

    # Visual weight is area. The finding is prevalence. These are unrelated.
  6. Slide 6 / 17

    The area problem

    • A choropleth gives each commune visual weight proportional to its land area — which has nothing to do with its…
    • This is not a technicality in this sector — Rural communes are large and urban ones small, so a map of a health…
    Speaker notes
    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.
  7. Slide 7 / 17

    When a map is the right chart

    • When the question is genuinely spatial — Where the flooding is
    • When the audience navigates by geography — A district health officer finds their own area on a map faster than in an…
    • When adjacency is the finding — Disease spread, market catchment, a cluster of non-functional water points along one…
    • Otherwise, sort a bar chart — "Which communes are worst" is a ranking question, and a ranking is what a sorted bar…
    Speaker notes
    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.
  8. Slide 8 / 17

    Small multiples — In Python

    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
    Speaker notes
    The alternative to one map is twelve small charts, and it is stronger than it sounds.
  9. Slide 9 / 17

    Small multiples — In R

    ggplot(monthly, aes(month, gam)) +
      geom_line() +
      geom_hline(yintercept = 0.10, linetype = "dashed") +
      facet_wrap(~commune, ncol = 4)
  10. Slide 10 / 17

    Small multiples

    • Shared axes, always — If each panel scales to its own data the reader is comparing shapes drawn at twelve different…
    • 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
    • One shape, learned once — The reader decodes the first panel and then reads eleven more for free — which is the whole…
    Speaker notes
    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.
  11. Slide 11 / 17

    The chart a request for a map usually wants

    The requestWhat it usually wantsGive them
    "A map of GAM by commune"Which communes to targetSorted bar chart with intervals
    "A map of the water points"How many work, and where the failures clusterA bar chart by district, plus a map only if clustering is the question
    "A map of the caseload"Where the people areA map of rates, never counts
    Speaker notes
    Three substitutions that satisfy the underlying question at lower cost.
  12. Slide 12 / 17

    The chart a request for a map usually wants

    • A choropleth of counts is a population map — It shows where people live, in every dataset, every time — because the…
    Speaker notes
    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.
  13. Slide 13 / 17

    If you do draw the map

    • Rates, not counts — for the reason above
    • A stated class scheme — Quantiles, equal intervals, or the sector's own thresholds
    • The denominator on the page — A commune shaded dark on 189 screenings and one shaded dark on 768 are not the same…
    • A companion chart — The map answers where; the sorted bar chart with intervals answers how much and how sure
    Speaker notes
    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.
  14. Slide 14 / 17

    Report it whole — Example

    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.
  15. Slide 15 / 17

    Report it whole

    • The last paragraph is the compromise that usually holds — the map exists, for the people who navigate by it, and it…
    Speaker notes
    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.
  16. Slide 16 / 17

    What comes next

    • Everything so far has assumed the reader sees the chart in colour, at full size, on a screen.
    Speaker notes
    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.
  17. Slide 17 / 17

    Where this goes next

    Read the full lesson, with runnable code Back to the lesson