Click the Original, Code and Reconstruction tabs to read about the issues and how they were fixed.

Original


Source: Union of Concerned Scientists (2020).


Objective

The objective of this pie chart is to inform and raise awareness of the countries most contributing to heat pollution by ranking the top 20 carbon emitting countries compared to the rest of the world. The target audience for this graph is the general public, in conjunction with political and commercial decision makers and the media.

The CO2 Emissions visualisation has the following three main issues:

  • The first issue is the use of a pie chart to compare twenty one categories. A pie chart has low accuracy for numerical comparison relying on angles and area, and there are too many categories for a pie chart, leading to difficulty in identifying and comparing countries. It is necessary to read the text and numerical values to distinguish between all but the five highest countries, and for those five it is still necessary to read the values to have an accurate understanding of their carbon emission contribution.
  • The second issue is the grouping of countries into regions within the pie chart, it detracts from the main message of which countries are the highest carbon polluters and the proportion of the pollution they produce. Instead the proportion of the pollution that a region is responsible for dominates over that of the individual countries.
  • The third issue is the saturation and use of the colours chosen for the pie chart. They are very bright, which gains attention as was likely the aim, however it is difficult to look at for any length of time, the visual stress makes it unlikely one can spend the amount of time required to sort through twenty one categories to make the comparisons. It serves to further detract from the main message of highest polluters by highlighting the regions over the countries as colour is differentiating regions rather than countries.

Reference

Code

The following code was used to fix the issues identified in the original.

library(readr)
library(tidyverse)
library(ggplot2)

ghg_emissions <- read_csv("C:/Users/Raelene/Desktop/Data Analytics/Semester 3/Data Visualisation and Communication/Assignment 2/ghg-emissions.csv")

emissions <- ghg_emissions %>% select('Country/Region', '2018')
emissions2 <- emissions %>% filter(row_number() <= n()-2)
emissions20 <- emissions %>% filter(`2018`>= 400.00)

total <- sum(emissions2$`2018`)
total20 <- sum(emissions20$`2018`)
emissions20 <- rbind(emissions20, c('Rest of the World', 12162.07))
emissions20$`2018` <- as.numeric(emissions20$`2018`)

Region <- c('Asia', 'Americas', 'Asia', 'Eurasia', 'Asia', 'Americas', 'Asia', 'Asia', 'Europe', 'Americas', 'Americas', 'Africa' , 'Asia', 'Asia', 'Oceania', 'Africa', 'Europe', 'Europe', 'Asia', 'Asia', 'Other')
emissions20 <- cbind(emissions20, Region)

cols <- c("Country", "CO2 Emissions", "Region")
colnames(emissions20) <- cols
emissions20$Country[12] = 'DR Congo' #for ease of reading and length

emissions20$Proportion <- emissions20$`CO2 Emissions`/total
emissions20$Percent <- emissions20$Proportion*100

plot <- ggplot(data = emissions20, aes(x = reorder(`Country`, -`Percent`), y= `Percent`, fill = factor(`Region`, levels = c('Asia', 'Americas', 'Eurasia', 'Europe', 'Africa', 'Oceania', 'Other'))))
plot2 <- plot + geom_bar(stat = "identity", position = "dodge") + 
  theme(legend.position="none") +
  scale_fill_manual(values=c('#66c2a5', '#fc8d62', '#8da0cb', '#e78ac3', '#a6d854', '#ffd92f', '#e5c494')) +
  facet_grid(~factor(`Region`, levels = c('Asia', 'Americas', 'Eurasia', 'Europe', 'Africa', 'Oceania', 'Other')), 
             scales="free_x",
             space = "free_x",
             switch = "x") +
  theme(axis.text.x=element_text(angle=45,hjust=1)) +
  labs(title="Carbon Emissions for the Top 20 Emitting Countries Grouped by Region, 2018",
       y = 'Percentage of CO2 Emissions',
       x = 'Country and Region',
       fill = element_blank())+
  geom_text(aes(label=round(Percent,1)), vjust = -0.5, size =3) +
  theme(strip.placement = "outside",                     
      strip.background = element_rect(fill = "white")) +
  theme(panel.background = element_blank(),
      axis.line = element_line(colour = "grey"))

strip_colours <- unique(ggplot_build(plot2)$data[[1]]$fill)
plot3 <- ggplot_gtable(ggplot_build(plot2))
strips <-which(startsWith(plot3$layout$name, 'strip'))
for (s in seq_along(strips)) {
  plot3$grobs[[strips[s]]]$grobs[[1]]$children[[1]]$gp$fill <- strip_colours[s]
} 

Data Reference

  • OECD/IEA (2020), CO2 Emissions from Fuel Combustion, Climate Watch Historical Country Greenhouse Gas Emissions Data, data file, World Resources Institute, Washington, DC. Retrieved 19 September, 2021, from Climate Watch website: https://www.climatewatchdata.org/ghg-emissions

Reconstruction

The following plot fixes the main issues in the original.