A minimal chart about global warming for the hottest year on record

polar bear in front of warming stripes
Polar bears hate us for global warming. Based on a photo by Nikolay Gernet, published under CC BY-SA 4.0

This is Simon, a software engineer at Datawrapper. For this week’s edition of the Weekly Chart, I’ve experimented with creating climate stripes in Datawrapper.

In the era of COVID-19, it’s easy to forget that we are also in the midst of another global crisis—one that will most likely end life on Earth as we know it. But January is a reliable reminder that climate change is real and happening right now. That’s because, in recent years, January has become the time when scientists announce that the previous year was the hottest on record, or at least a close runner-up. And 2020 did not disappoint one bit.

In fact, the 10 hottest years on record have all occurred in the past 15 years and, as the following chart illustrates, that alarming trend has already started decades earlier:

This type of chart is often called climate stripes or warming stripes. Each stripe represents a year, and its color encodes a value. That’s usually temperatures, but climate stripes have also been used to visualize other trends or patterns, such as sea level rise, or rainfall. The original warming stripe graphics were designed by climate scientist Ed Hawkins, who wanted to communicate the long-term effects of climate change in a way that everyone immediately understands.

Climate change is a complex global issue, requiring simple communication about its effects at the local scale.

Ed Hawkins

To achieve this, he removed all the elements that you would commonly expect in a chart, such as axes or labels, and focused on highlighting the change of a single measurement as a function of time.

And he was pretty successful. Since 2018, when Ed Hawkins published his first climate stripes, his iconic graphics have made magazine covers and become a common sight at climate change protests. Climate stripes have also been used to decorate all kinds of products, ranging from leggings to electric cars. There’s now even an online tool that lets you download and share warming stripe graphics for many regions around the world. And indeed, climate stripes are particularly effective when you localize them:

How to make your own climate stripes

Climate stripes are not only easy to understand, they’re also easy to create. To make custom climate stripes, you only need two things: some time series data and a tool for rendering colored stripes. While Datawrapper does not have a native climate stripes chart type, you can create this kind of graphics as heatmaps, which is a feature of Datawrapper tables. If you want to see how exactly I used the heatmaps feature for the graphics above, simply hover over them and click ‘Edit this chart’.

To create useful climate stripe graphics, you’ll need a dataset that covers a long period of time and shows a clear trend. For weather-related data, there is plenty of open data available from official sources, e.g., from NOAA in the US, DWD in Germany, or the Met Office in the UK.

Once you have decided on a dataset and imported it into Datawrapper, you’ll have to define a reference value that will be the baseline for your visualization. Values lower than your baseline will be colored in shades of one color, usually blue, and values higher than your baseline will be colored in shades of another color, usually red.

The color range controls for heatmaps
You can tweak the color range in the heatmap tool until it looks right.

After some experimenting, I ended up using temperature data from Berkley Earth, an NGO that focuses on environmental data analysis. Berkley Earth provides temperature time series going back to the 18th and 19th centuries for many cities and countries worldwide. Also, their temperature data is reported as deviations from a reference range (the average for 1951–1980), so you don’t have to calculate a baseline yourself. With some transforming and filtering, it is the perfect source material for creating localized climate stripes, like the ones above.

Tips for preparing the data for charting

For some reason, weather information tends to come in arcane data formats, often plain text files with fixed-width columns. An easy way to deal with these is to use the table import wizards in LibreOffice Calc or Microsoft Excel, where you can specify the width of each column and the tool will do the rest of the work. You may also have to remove some meta-information from the top of the text file to get a clean table with a single header for each column. You can then export the table in a delimited format (e.g. CSV) or simply copy-and-paste it into Datawrapper.

Also, temperature series from Berkley Earth are reported per month. To get the average annual temperature, you’ll have to filter the data by month (you’ll need the data for June, which has the annual average from January to December) and pick the correct column (‘Annual Anomaly’).

For more information about the other techniques used in this article, have a look at the following resources:


I am looking forward to seeing your own custom climate stripes! And as always, do let me know if you have feedback, suggestions, or questions. You can get in touch with me via simon@datawrapper.de, Mastodon, or Twitter.

Comments