UK COVID-19 Mortality Rate by Ethnicity
library(tidyverse)
library(gcookbook)
library(ggalt)
full <- read_csv("covid-mortality.csv")
##
## ── Column specification ────────────────────────────────────────────────────────
## cols(
## `Ethnic group` = col_character(),
## Sex = col_character(),
## Measure = col_character(),
## Value = col_double(),
## lower = col_double(),
## upper = col_double()
## )
average <- full %>%
filter(Measure == "Average") %>% ##focus on the 'average' measure for now
rename(ethnic = "Ethnic group")
## make new column for ethnic-gender group
average$ethgen <- paste(average$ethnic, "-", average$Sex)
## reorder ethnic-gender group
average <- average %>%
mutate(ethgen = fct_reorder(ethgen,lower))
## make a dumbbell plot
average_plot <- ggplot(average) +
geom_segment(aes(y=ethgen, yend=ethgen, x=1, xend=3.5), color="#b2b2b2", size=0.15) +
geom_dumbbell(aes(y=ethgen, x= lower, xend= upper),
size=1, color="#b2b2b2", size_x=2, size_xend = 2, colour_x = "#56B4E9", colour_xend = "tomato") +
geom_text(data=filter(average, ethgen=="Black - Male"),
aes(x=upper, y=ethgen, label="Upper"),
color="tomato", size=3, vjust=-1.5, fontface="bold", family="Playfair Display") +
geom_text(data=filter(average, ethgen=="Black - Male"),
aes(x=lower, y=ethgen, label="Lower"),
color="#56B4E9", size=3, vjust=-1.5,fontface="bold", family="Playfair Display") +
geom_vline(xintercept = 1, color = "#b2b2b2", size=1.5) + ## vertical line to represent baseline(White)
## adding labels
labs(x=NULL, y=NULL, title="Minority ethnicities are more likely to die from COVID-19 than the White",
subtitle="Covid death index ranges of each ethnicity-gender combination when compared to the baseline (White)?",
caption="#MakeoverMonday | Source: Information is Beautiful via UK Office for National Statistics") +
theme_bw(base_family="Playfair Display") + ## adding theme
theme(
panel.grid.major=element_blank(),
panel.grid.minor=element_blank(),
panel.border=element_blank(),
axis.ticks=element_blank(),
plot.title=element_text(size = 14, face="bold"),
plot.title.position = "plot",
plot.subtitle=element_text(face="italic", size=11, margin=margin(b=12)),
plot.caption=element_text(size=8, margin=margin(t=12), color="#7a7d7e")
)
average_plot +
geom_point(aes(x=Value, y=ethgen, label=Value), shape=21, size=5, color="#b2b2b2", fill="white") +
geom_text(aes(x=Value, y=ethgen, label=Value),size=2,family="Playfair Display")

ggsave("2021_W29.png")