COVID-19 Waffle Plots

Last week I introduced the Exploring COVID-19 Around The World Dashboard that I built using the Shiny Platform. Today I’ve updated the dashboard to include a waffle plot that allows you to compare case and mortality rates across several countries. Interested in how Canada compares to Sweden, for example? The waffle plot can help.

Even if you’ve never heard of a waffle plot before, you’ve probably seen one. It’s a simple tool to represent and compare data using (typically) squares stacked in rows and columns. Each square represents a certain number of whatever it is that one is comparing. Spacing between each square gives the stacked boxes its waffle-like appearance.

In many cases, waffle plots illustrate the percentage that each of several groups contribute to the whole. In other situations, the boxes represent a non-percentage value such as, for example, one box equals 10 cases. Regardless, waffle plots provide the viewer with a relative comparison.

With this in mind, I decided to create a waffle plot that would allow for the comparison of population adjusted case and mortality rates between (up to six) different countries. The first country represents the baseline, and each of the remaining countries the comparators.

How does the plot work?

The dashboard begins by calculating the number of cases (or deaths) per million people in the baseline country. Let’s use Canada as an example. Worldometer’s estimated our population to be 37,716,316 on June 2. On the same date, John Hopkins data indicated Canada had 93,960 cases of COVID-19, with 7,477 deaths. In other words, there were approximately 2,491 cases1 and 198 deaths2 per million people in Canada as a result of COVID-19. In comparison, Sweden (with a population of about one quarter of Canada) had 3,8233 cases and 4434 deaths per million people on the same day.

Let’s focus on cases. To make the visualization simple and relatable, I decided to consider what other countries would look like if the baseline country – in this case Canada – had only 100 cases. I picked 100 because it’s a small enough number for each of us to visualize, and I think most of us could name 100 people from our list of extended family, friends, and colleagues.

But how does Sweden (for example) compare to this?

Sweden’s population adjusted case rate is approximately 1.53 times that of Canada. Simply put, if Canada had only 100 cases, we would expect Sweden to have 153. These two values are converted to a very simple comparative waffle plot, as shown below.

The dashboard has been developed, however, so that you can select up to 5 comparator countries. Each of these are compared to the baseline country, with the waffle plot providing some sense of how each of the countries is doing relative to the base.


It’s important, however, to remember that these data to not tell the entire picture. They also do not adjust for the phase of the pandemic in which each country currently exists. For example, Canada moved out of the exponential growth phase of the pandemic several weeks ago. This is not the case with Brazil, for example, where cases and deaths continue to grow exponentially. While our Canadian case and mortality rates will continue to climb, they will do so at a much lower rate than what’s currently happening in Brazil. We need to consider this when we make our comparisons.

Canada’s daily case count over time.
Brazils’ daily case count over time.

As always, follow the advice of the public health experts. Wash your hands. Stay home if you can. Keep your distance.

1 93960/37716316*1000000=2491.2…

2 7477/37716316*1000000=198.2…

3 38589/10094432*1000000=3822.8…

4 4468/10094432*1000000=442.6…

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.