Find a plot in a healthcare related publication and improve the visual presentation with only the data available from the publication.
Find a plot in a healthcare related publication and improve the visual presentation with only the data available from the publication.
A description of the challenge can be found here.
A recording of the session can be found here.
Original:
Updated version:
The Shiny app can be found here.
Original:
Updated version:
The Shiny app can be found here.
Original:
Updated version:
Original:
high resolution image
Source: Figure 2 in Muntyanu A, Gabrielli S, Donovan J, Gooderham M,
Guenther L, Hanna S, et al. The burden of alopecia areata: A scoping
review focusing on quality of life, mental health and work productivity.
J Eur Acad Dermatol Venereol. 2023; 37: 1490–1520. https://doi.org/10.1111/jdv.18926
Updated version 1:
Updated version 2:
No code available.
library(tidyverse)
library(haven)
library(ggplot2)
library(readr)
### Bring in data
# Replacing missing counts with 0 assuming no deaths on dates where
# no deaths reported for purpose of this plot
# Also some negative numbers of deaths reported in plot, assuming
# the negative sign added in error for purpose of this plot
df_raw <- read_csv("WHO-COVID-19-global-data.csv") %>%
select(Date_reported, WHO_region, New_deaths) %>%
mutate(New_deaths = ifelse(is.na(New_deaths), 0, abs(New_deaths)))
# Numeric variable for dates in order
# Dataset contains 211 unique dates repeated across 240 countries
df_raw$date_n <- rep(c(1:211), times=240)
# Total counts by region and overall
df_reg <- aggregate(df_raw$New_deaths,
by=list(df_raw$date_n, df_raw$WHO_region),
FUN=sum)
df_total <- aggregate(df_raw$New_deaths,
by=list(df_raw$date_n),
FUN=sum)
### Function for plot
covid_plot <- function(Region, text_y, cap_text){
# Data for other regions - ggplot below will stack
# this and data for region to get overall counts
# (Update - later fill these additional regions in white
# so now somewhat redundant)
df_filt <- df_raw %>% filter(WHO_region != Region)
df_other <- aggregate(df_filt$New_deaths,
by=list(df_filt$date_n),
FUN=sum) %>%
mutate(Group.2 = "Other")
# Data for region of interest
df_red <- df_reg %>% filter(Group.2 == Region)
df <- rbind(df_red, df_other) %>%
mutate(Group.2_n = as.factor(if_else(Group.2 == "Other", 1, 2)))
outplot <-
ggplot() +
geom_area(data= df, aes(x = Group.1, y = x,
group = Group.2_n, fill = Group.2_n)) +
scale_x_continuous(breaks = c(0, 53, 105, 157, 211),
labels=c("05/01/2020", "03/01/2021",
"02/01/2022", "01/01/2023", "14/01/2024")) +
scale_fill_manual(values = c("white", "red")) +
geom_line(data = df_total, mapping = aes(x = Group.1, y = x)) +
theme_bw() +
theme(
plot.title.position = "plot",
panel.border = element_blank(),
panel.grid.major.x = element_blank(),
panel.grid.minor.x = element_blank(),
panel.grid.minor.y = element_blank(),
axis.line.x = element_line(colour = "black"),
axis.ticks.y = element_blank(),
axis.text.x = element_text(margin = margin(t = 5, unit = "pt")),
axis.title.x = element_blank(),
axis.title.y = element_blank(),
legend.position = "none"
) +
geom_segment(aes(x = 14+6/7, y = 0, xend = 14+6/7, yend = 80000),
linetype=2) +
labs(title = "Weekly COVID Deaths",
caption = cap_text) +
annotate(geom="text", x=78, y=90000, label="TOTAL",
size=4, fontface=2) +
annotate(geom="text", x=78, y=text_y, label = Region,
size=4, fontface=2, color = "red") +
annotate(geom="text", x=14+6/7, y=82500, label=" WHO Declares Pandemic",
size=3, fontface=3)
return(outplot)
}
AFRO_plot <- covid_plot(Region = "AFRO", text_y = 7500,
cap_text = "AFRO = African Region")
AMRO_plot <- covid_plot(Region = "AMRO", text_y = 40000,
cap_text = "AMRO = Region of the Americas")
EMRO_plot <- covid_plot(Region = "EMRO", text_y = 7500,
cap_text = "EMRO = Eastern Mediterranean Region")
EURO_plot <- covid_plot(Region = "EURO", text_y = 25000,
cap_text = "EURO = European Region")
SEARO_plot <- covid_plot(Region = "SEARO", text_y = 35000,
cap_text = "SEARO = South-East Asian Region")
WPRO_plot <- covid_plot(Region = "WPRO", text_y = 7500,
cap_text = "WPRO = Western Pacific Region")
No code available.
No code available.
For attribution, please cite this work as
SIG (2024, Feb. 8). VIS-SIG Blog: Wonderful Wednesdays February 2024. Retrieved from https://graphicsprinciples.github.io/posts/2024-09-01-wonderful-wednesdays-february-2024/
BibTeX citation
@misc{sig2024wonderful, author = {SIG, PSI VIS}, title = {VIS-SIG Blog: Wonderful Wednesdays February 2024}, url = {https://graphicsprinciples.github.io/posts/2024-09-01-wonderful-wednesdays-february-2024/}, year = {2024} }