library(ggplot2)
library(dplyr)
library(lubridate)
library(scales)
# Data
<- read.csv('https://covid.ourworldindata.org/data/owid-covid-data.csv')
df %>%
df filter(location == 'United States') %>%
select(date, new_cases_smoothed) -> df_us
$date <- as.Date(df_us$date)
df_us$year <- year(df_us$date)
df_us$month <- month(df_us$date)
df_us$day <- day(df_us$date)
df_us
# Plot
ggplot(df_us) +
geom_point(aes(x=interaction(day, month), y=date, size=new_cases_smoothed), alpha=0.1, color='#E5C7C6') +
annotate(geom='text', label='2020', x='1.1', y=as.Date('2020-01-01'), vjust=-1.5, hjust=0, family='Cinzel', size=3) +
annotate(geom='text', label='2021', x='1.1', y=as.Date('2021-01-01'), vjust=-4, hjust=0, family='Cinzel', size=3) +
annotate(geom='text', label='2022', x='1.1', y=as.Date('2022-01-01'), vjust=-5, hjust=0, family='Cinzel', size=3) +
scale_x_discrete(breaks=paste(1,1:12, sep='.'), labels=c('', '','','Apr', '','','Jul', '','','Oct','','')) +
scale_size(name='New COVID-19 Cases in US', range=c(1,25), labels = label_number_si()) +
coord_polar() +
theme_void() +
theme(panel.grid.major.x=element_line(size=0.05, color='black', linetype = 'dashed'),
axis.text.x = element_text(color='black', size=6),
plot.title=element_text(hjust=0.5, size=30, margin=margin(0,1,1,0, 'cm')),
text=element_text(family='Cinzel', color='black'),
plot.margin=margin(1,1,1,1, 'cm'),
plot.background=element_rect(fill='white', color='white')) +
labs(title='The New York Times\nSpiRal', caption='Source: Our World in Data | Author: Paula LC (@elartedeldato)')
El New York Times publicaba un gráfico el pasado día 6 sobre el número de casos de COVID19 en Estados Unidos. El gráfico despertó numerosas opiniones debido a su peculiar y, sin duda, original forma de presentar los datos.
También se generaron algunas versiones que, según la opinión general, mejoraban el original:
honestly? I love the serpent chart! 🐍
— Amelia Wattenberger ❄️ 華曼如 (@Wattenberger) January 7, 2022
depicting time as a spiral is one of my favorite ways to show change over time and seasonal patterns.
I played with reinforcing the value using a color scale as well, which is easier to compare across years https://t.co/xzowPBu98O pic.twitter.com/vHsS3qY4n8
Desde aquí hemos querido hacer nuestra propia versión en R, utilizando geom_point()
de ggplot.
Para guardarlo con las medidas exactas de gráfico:
ggsave('the_nyt_spiral.png', height = 7.5, width = 9.5)
¿Te animas a hacer tu propia versión?