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

Original


Source:Our world in Data


Objective

  • The objective of the considered data visualisation is to compare which continent have higher death percentage due to covid-19 on monthly basis(ie.december to may).

  • The target audience are the common people living in all continents who wants to be aware of the trend caused by the COVID-19 disease

The three main issues of this visualisation are:

  • Deceptive Method(not followed plot anatomy - y-axis, Data Trends and Data Labels): The graph does not provide clear visual representation of data trends and data labels as they overlap on one another and makes it hard to interpret individual trends of each continent.On top of this, y-axis label is not labelled as Number of deaths, so it could assumed that it is the Count of covid-19 cases instead of Number of deaths when audience miss to see the title of the data visualisation.

  • Perceptual Issues:It is very difficult to perceptually discriminate the graph as the interpreter can’t quantitaively perceive the number of deaths, which is a drawback for the data visualisation.

  • Color Issues: As the color chosen for few continents of this data visulaisation is similar to each other so it is difficult to differentiate one continent from another continent trend. For instance, it is very difficult to different Oceania from Asia and Europe, as they all from similar family of colours.

Reference (ECDC), E. C. (n.d.). Our world in Data. Retrieved May 4, 2020, from https://ourworldindata.org/grapher/covid-confirmed-deaths-since-5th-death

Code

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

#reading dataset:
library(readr)
covid_death_rate <- read_csv('covid-confirmed-deaths-since-5th-death.csv')

#subsetting only continents:
library(dplyr)
covid_death_rate1 <- covid_death_rate %>% select(Entity,Code,Date,'(deaths)','Days since the 5th total confirmed death') %>% 
                    filter(Entity %in% c("Africa","Asia","Europe","North America","Oceania","South America")) 

#separating month:
library(tidyr)
Month <- substring(covid_death_rate1$Date,first  =1, last = 3)
covid_death_rate2  <-covid_death_rate1 %>% mutate(Month)

#group by month:
covid_death_rate2$`(deaths)` <- as.integer(covid_death_rate2$`(deaths)`)
covid_death_rate2$`(deaths)`[is.na(covid_death_rate2$`(deaths)`)] <- 0
covid_death_rate3 <- covid_death_rate2 %>% group_by(Entity,Month) %>% summarise()
m=2
d=0
for(i in c(1:nrow(covid_death_rate3))){
  for(j in c(1:nrow(covid_death_rate2))){
    if((covid_death_rate3$Entity[i] == covid_death_rate2$Entity[j]) && (covid_death_rate3$Month[i] == covid_death_rate2$Month[j])){
      m = covid_death_rate2$`(deaths)`[j]
    }
    
  }
  d[i]=max(m)
  m=0

  }

covid_death_rate3$Deaths <- d
covid_death_rate3$Month <- factor(covid_death_rate3$Month, 
                          levels = c("Dec", "Jan", "Feb", "Mar", "Apr", "May"), 
                          labels = c("Dec", "Jan", "Feb", "Mar", "Apr", "May"),
                          ordered = T)


covid_death_rate3$'Deaths_percentage' <- (covid_death_rate3$Deaths/sum(covid_death_rate3$Deaths)) * 100

#rounding death percentage:
covid_death_rate3[,'Deaths_percentage']=round(covid_death_rate3[,'Deaths_percentage'],2)

##plotting a bar chart

library(ggplot2)

color_blind <- c("#F0E442", "#E69F00", "#56B4E9", "#009E73", "#CC79A7", "#000000")

Reconstructed_Graph <- ggplot(covid_death_rate3, aes(fill= Month, y=Deaths_percentage, x=Month)) + 
    geom_bar(position="dodge", stat="identity") + scale_fill_manual(values = color_blind)+
    ggtitle("Covid Death % in each continent") +
    facet_wrap(~Entity,nrow=2 ) +
    theme(plot.title = element_text(size = 12, face = "bold"),legend.position="right",legend.title = element_text(size = 8,face = "bold"),axis.title = element_text(size = 10,face = "bold"),axis.text.y = element_text(size = 8),axis.text.x  = element_text(size = 8))

Data Reference

Reconstruction

The following plot fixes the main issues in the original.