Data and Digital Storytelling Lead, 360info
360info is an open access global information agency that tackles the world’s biggest challenges and offers practical solutions.
Keen to collab with research groups and media outlets!
https://numbats2022.talks.jamesgoldie.dev
(Code for these slides is at https://github.com/jimjam-slam/talk-numbats-2022)
Long view bad ❌ | Long view better ☑️ | |
---|---|---|
Short view bad ❌ | Bad chart | Requires context or time |
Short view good ☑️ | Misleading/reductive/ oversimplified | 🥳 |
❌
Jargon
daily maxima
maximum daily maximum
area-averaged temperature
(Possible) alternative
daytime temperatures
hottest day
temperature across Australia
Cool season total rainfall (mm)
import {addTooltips} from "@mkfreeman/plot-tooltip"
perth = FileAttachment("data/perth-rainfall-obs.csv")
.csv({ typed: true })
// convert year to date
perthData = perth.map(d => ({ ...d,
startDate: new Date(d.year + "-01-01"),
date: new Date(d.year + "-07-01"),
endDate: new Date(d.year + "-12-31")
}))
// calculate man rainfallx
rainfallArray = perth.map(d => d.total)
meanRainfall =
rainfallArray.reduce((a, b) => a + b, 0) / rainfallArray.length
perthChart = addTooltips(
Plot.plot({
grid: true,
marks: [
Plot.rectY(perthData,
{
x1: "startDate",
x2: "endDate",
y: "total",
// fill: "total"
fill: "#7ceaf2",
title: d => `${d.year}\n${d.total} mm`
}),
Plot.linearRegressionY(perthData, { x: "date", y: "total" })
]
}),
{
fill: "#2478bd",
stroke: "#2478bd"
})
Establish critical time for agriculture
Only mention of seasonality is here 😔
Establish observed decline
(These are annual figures - note smaller trend)
Continue to future projections
Note that legend is the secondary way of establishing colour scale
Annotation establishes range and headline
Tooltips?
(Di/tri)chromatic maps
Choosing stories where we can be clear
Highlighting sources of uncertainty where they’re relevant, instead of putting all the fine print on all the time
Questions?