Los gráficos de horizonte son especialmente útiles cuando visualiza datos de series de tiempo que tienen un valor cercano a las marcas de datos.
Conjunto de datos sobre la evolución de la pandemia COVID-19 en varios paises del mundo, entre los que destacan el número de casos confirmados, número de muertos y casos de recuperación.
## Warning: package 'tidyverse' was built under R version 4.2.2
## ── Attaching packages ─────────────────────────────────────── tidyverse 1.3.2 ──
## ✔ ggplot2 3.4.0 ✔ purrr 0.3.5
## ✔ tibble 3.1.8 ✔ dplyr 1.0.10
## ✔ tidyr 1.2.1 ✔ stringr 1.4.1
## ✔ readr 2.1.3 ✔ forcats 0.5.2
## Warning: package 'ggplot2' was built under R version 4.2.2
## Warning: package 'tibble' was built under R version 4.2.2
## Warning: package 'tidyr' was built under R version 4.2.2
## Warning: package 'readr' was built under R version 4.2.2
## Warning: package 'purrr' was built under R version 4.2.2
## Warning: package 'dplyr' was built under R version 4.2.2
## Warning: package 'stringr' was built under R version 4.2.2
## Warning: package 'forcats' was built under R version 4.2.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## Warning: package 'ggHoriPlot' was built under R version 4.2.2
## Warning: package 'ggthemes' was built under R version 4.2.2
#Lectura de datos
data_covid19 <- read.csv("full_grouped.csv", sep=",")
#Vector del listado de países de América
countries_sud <- c('Brazil','Colombia','Argentina','Peru','Venezuela','Chile','Ecuador','Bolivia','Paraguay','Uruguay','Guyana','Suriname','French Guiana','Falkland Islands')
#Selección de datos
data_sud <- subset(data_covid19, Country.Region %in% countries_sud)
data_sud$Date <- as.Date(data_sud$Date, format = "%Y-%m-%d")
#Comprobar valores outliers
val_cutpoints <- data_sud %>%
mutate(outlier = between(Confirmed, quantile(Confirmed, 0.25, na.rm=T)- 1.5*IQR(Confirmed, na.rm=T),
quantile(Confirmed, 0.75, na.rm=T)+ 1.5*IQR(Confirmed, na.rm=T))) %>% filter(outlier)
val_ori <- sum(range(val_cutpoints$Confirmed))/2
val_sca <- seq(range(val_cutpoints$Confirmed)[1],
range(val_cutpoints$Confirmed)[2],
length.out = 7)[-4]
#Generación de gráfico
data_sud %>% ggplot() +
geom_horizon(aes(Date,
Confirmed,
fill = ..Cutpoints..),
origin = val_ori, horizonscale = val_sca) +
scale_fill_hcl(palette = 'RdBu', reverse = T, name="Casos confirmados") +
facet_grid(Country.Region~.) +
theme_few() +
theme(
panel.spacing.y=unit(0, "lines"),
strip.text.y = element_text(size = 7, angle = 0, hjust = 0),
axis.text.y = element_blank(),
axis.title.y = element_blank(),
axis.ticks.y = element_blank(),
panel.border = element_blank()
) +
scale_x_date(expand=c(0,0),
date_breaks = "1 month",
date_labels = "%b") +
xlab('Fecha') +
ggtitle('Cantidad de casos confirmados en Sudamérica(Enero-Julio 2020)')
## Warning: The dot-dot notation (`..Cutpoints..`) was deprecated in ggplot2 3.4.0.
## ℹ Please use `after_stat(Cutpoints)` instead.
## Warning: Using the `size` aesthetic in this geom was deprecated in ggplot2 3.4.0.
## ℹ Please use `linewidth` in the `default_aes` field and elsewhere instead.