En este post comparto el código para reproducir el siguiente gráfico con la data extraída del repositorio de la Universidad Johns Hopkings Repo
Librerias
library(ggplot2) ## Gráficos
library(ggpubr) ## El panel del gráfico
library(dplyr) ## Data
library(directlabels) ## Para agregar las etiquetas al final de la lineas
library(rio) ## Para importar la data
Código
### Link al repo ###
confirmed <- "https://raw.github.com/CSSEGISandData/COVID-19/master/csse_covid_19_data/csse_covid_19_time_series/time_series_covid19_confirmed_global.csv"
##############
###### Preparando la data#############
WorldData<-import(file = confirmed)%>% ### import jala el archivo
mutate(type="confirmed")%>% ### creo una variable
tidyr::gather(Fecha,Valor,-c(type,"Province/State",
"Country/Region",Lat,Long)) ### la convierto en formato "long"
WorldData=WorldData%>%dplyr::select(Country="Country/Region",
Provincia="Province/State",
type,
Valor,
Fecha)
paises<- c("Peru","Chile","Ecuador", "Brazil") ## Preparo lista de países
####### Preparo mi subset para gráficar#######
d1=WorldData%>%filter(type=="confirmed",
Country%in%paises,
Valor>0)%>%
group_by(Country)%>%
mutate(Fecha=as.Date(Fecha,"%m/%d/"))%>% ### Formato Fecha
mutate(start = first(Fecha),
Dstart=Fecha-start)%>%
ungroup()%>%
#filter(d_start<21)%>%
mutate(log=log(Valor+0.01))%>%
filter(Dstart>2) ### Me quedo con la información a partir del segundo día
Gráfico
p=d1%>%
ggplot(aes(x = Dstart,y=Valor,group=Country)) +
geom_line(aes(col = Country))+
scale_y_continuous(trans = "log10")+ #### Esta línea transforma la variable a escala log en base 10. El eje Y sigue siendo el conteo.
geom_dl(aes(label = Country),
method = list(dl.trans(x = x + 0.2), "last.points", cex = 0.8))+
labs(y="Confirmados",x="Número de días desde el primer caso")
panel<-ggarrange(p,
ncol=1,nrow=1,
font.label = list(size = 10, color = "black", face = "bold", family = NULL)) ### Panel básico
annotate_figure(panel,
top = text_grob("Casos confirmados en escala log10", color = "#474785", face = "bold", size = 14),
bottom = text_grob("Fuente: JHU", color = "black", hjust = 1, x = 1, face = "italic", size = 8)) ### Se pueden agregar notas