Course · Intermediate · Communication and Delivery
Data Visualisation for Programmes
Charts that survive a printer, a projector and a sceptical reviewer, built in matplotlib and ggplot2 against the conventions each cluster already reads fluently.
What you will be able to do
- Choose the mark from the comparison the chart is making, before opening a plotting library
- Put uncertainty on a chart in a form a programme audience reads correctly
- Use the sector's own colour conventions, and recognise the palettes that must not be repurposed
- Judge when a map is worse than a sorted bar chart, and use small multiples instead
- Produce a chart that survives greyscale, a projector and a colour-blind reader
- Label a figure so it stays correct when someone lifts it into another document
Standards and methodologies
A chart in a programme report is not decoration and it is not exploration. It is a claim, made in a form a reader absorbs faster than a sentence and questions less — which is exactly why it has to be built with more care than the sentence, not less.
This course teaches against the platform’s own figure pipeline rather than
alongside it. Every chart on this site is generated from a committed dataset by
scripts/figures/build.py, in SVG for the web and TikZ for print, and nothing is
drawn by hand. Two of the figures this course uses were added by this course,
through that pipeline, which is the only demonstration of the argument that counts.
Three results shape it.
Four instruments, the same 1,955 households, and a seven-fold gap. Poor food consumption flags 7.4% and the coping index flags 51.0%. The food security course states those numbers in prose and a reader nods; the same four numbers as bars are not something anyone reads past.
A referral pathway loses more between consent and a referral being made than at any other gate. 88.5% of registered cases consent, 61.7% get a referral, 40.9% have it accepted. Written out it is a list; drawn, the largest drop is where nobody expects it, and it is a caseworker decision rather than a service failure.
The signal band is reserved and the reason is measurable. Green, amber and red mean normal, moderate and severe on this platform — a MUAC banding this audience reads without thinking. A chart that spends those three colours on three districts has taught the reader to stop reading them as a measurement, and no legend recovers it.
Both Python and R throughout, with matplotlib and ggplot2 as the working tools. You need Applied Statistics for Programmes first: half of good charting is knowing which number deserves an interval, and this course assumes you can already say.
Practice
Reading the lessons is not the same as having done the work. Each of these applies the course to a dataset it did not teach on.
- Lab · 180 minTwo figures that cannot driftBuild a small figures pipeline of your own, produce two charts for a WASH report from the committed survey, and prove the arrangement works by correcting the dataset and watching the chart and its caption move together.
- Exercise · 60 minEvery number on it is correctA cluster presentation ranks twelve communes on malnutrition, colours the worst three red, and truncates the axis so the gap looks decisive. Nothing on the slide is factually wrong. Find the four decisions that made it dishonest and produce the version that is not.
Progress
Take it offline
The whole course as a typeset PDF — every lesson, every code example, the data dictionary and the indicator definitions. Generated from the same source as this page.
The LaTeX source ships alongside each PDF, so an organisation can rebrand the handout or fold a lesson into its own training pack.