Animación del progreso y las variantes de Covid-19 a lo largo del tiempo: hacia la IA

Estás leyendo la publicación: Animación del progreso y las variantes de Covid-19 a lo largo del tiempo: hacia la IA

Publicado originalmente en Hacia la IA, la empresa líder mundial en noticias y medios de IA y tecnología. Si está creando un producto o servicio relacionado con la IA, lo invitamos a considerar convertirse en patrocinador de la IA. En Hacia la IA, ayudamos a escalar las empresas emergentes de IA y tecnología. Permítanos ayudarlo a dar rienda suelta a su tecnología a las masas.

Visualización de datos

Usando R y GGanimate

Me encanta la función GGanimate de GGPlot que te permite agregar una cuarta dimensión a cualquier trama que estés haciendo. Por lo tanto, esta no es la primera correo Lo atribuyo a la construcción de GIF usando R. Pero, cuando algo es divertido, tiendes a repetirlo. Así que hagamos esto corto y dulce.

rm(lista = ls())
biblioteca (tidyverse)
biblioteca (readr)
biblioteca (ggthemes)
biblioteca (lubricar)
biblioteca (zoológico)
biblioteca (gganimate)
biblioteca (parcela)

Descargué los datos de Covid de OWID y algunos datos del Instituto Nacional Holandés de Salud Pública y Medio Ambiente. He publicado sobre esta pieza técnica en particular antes en LinkedIN.

obtener ()
carpeta_datos <- archivo.ruta("C:/Covid/")
URL <- "https://covid.ourworldindata.org/data/owid-covid-data.csv
nombre <- "owid-covid-data.csv"
download.file(url = url, destfile = paste0(data_folder,name))
setwd(carpeta_datos)
Covidowid_covid_data <- read_csv(paste0(data_folder,name)) data_folder <- file.path("C:/Covid/")
URL <- "https://data.rivm.nl/covid-19/COVID-19_varianten.csv
nombre <- "COVID-19_varianten.csv"
download.file(url = url, destfile = paste0(data_folder,name))
setwd(carpeta_datos)
variantes <- read_delim(paste0(data_folder,name),
delim = “;”, escape_double = FALSO, trim_ws = VERDADERO)

Luego, transformé los datos para imitar el artículo de la New York Times indicando que Omikron puede tener algunas amenazas subyacentes. Entonces, lo que hice fue conectar las infecciones, las admisiones y las muertes mediante el uso de promedios móviles, valores logarítmicos y retrasos.

🔥 Recomendado:  Seis tendencias de las redes sociales que debes saber para 2019

df<-Covidowid_covid_data
países <- c(único(df_owid$iso_code))
dfNLD <- df%>%
dplyr::filter(iso_code == “NLD”)%>%
dplyr::select(date,iso_code,date,new_cases_per_million, new_deaths_per_million)%>%
dplyr::mutate(cases_07da = zoo::rollmean(new_cases_per_million, k = 7, fill = NA),
death_07da = zoo::rollmean(new_deaths_per_million, k = 7, fill = NA),
fecha de muerte_21plus = fecha – 21)
cabeza (dfNLD)
ggplot(dfNLD)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=deathdate_21plus, y=log(deaths_07da), color=”Nuevas Muertes”))+
escala_color_manual(nombre=””,
valores=c(‘rojo’, ‘gris’),
etiquetas = c(“Casos”, “Muertes 21 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Nuevos casos y nuevas muertes (escala logarítmica)”,
title=”Nuevos casos frente a nuevas muertes en una escala logarítmica de promedio móvil de 7 días”) dfNLD <- df%>%
dplyr::filter(iso_code == “NLD”)%>%
dplyr::select(date,iso_code,date,new_cases_per_million, icu_patients_per_million)%>%
dplyr::mutate(cases_07da = zoo::rollmean(new_cases_per_million, k = 7, fill = NA),
ICU_07da = zoo::rollmean(icu_patients_per_million, k = 7, fill = NA),
ICUdate_14plus = fecha – 14)
ggplot(dfNLD)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=ICUdate_14plus , y=log(ICU_07da), color=”Nueva UCI”))+
escala_color_manual(nombre=””,
valores=c(‘rojo’, ‘gris’),
etiquetas = c(“Casos”, “UCI 14 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Casos Nuevos y UCI (escala logarítmica)”,
title=”Casos nuevos frente a UCI en una escala logarítmica de promedio móvil de 7 días”) dfNLD <- df%>%
dplyr::filter(iso_code == “NLD”)%>%
dplyr::select(date,iso_code,date,new_cases_per_million, hosp_patients_per_million)%>%
dplyr::mutate(cases_07da = zoo::rollmean(new_cases_per_million, k = 7, fill = NA),
hosp_07da = zoo::rollmean(hosp_patients_per_million, k = 7, fill = NA),
HOSPdate_14plus = fecha – 14)
ggplot(dfNLD)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=HOSPdate_14plus , y=log(hosp_07da), color=”Nuevo Hospital”))+
escala_color_manual(nombre=””,
valores=c(‘rojo’, ‘gris’),
etiquetas = c(“Casos”, “Hospital 14 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Casos nuevos y hospital (escala logarítmica)”,
title=”Casos nuevos frente a hospital en una escala logarítmica de promedio móvil de 7 días”) dfNLD <- df%>%
dplyr::filter(iso_code == “NLD”)%>%
dplyr::select(date,iso_code,date,new_cases_per_million, hosp_patients_per_million,icu_patients_per_million,new_deaths_per_million)%>%
dplyr::mutate(cases_07da = zoo::rollmean(new_cases_per_million, k = 7, fill = NA),
hosp_07da = zoo::rollmean(hosp_patients_per_million, k = 7, fill = NA),
HOSPdate_14plus = fecha – 14,
death_07da = zoo::rollmean(new_deaths_per_million, k = 7, fill = NA),
deathdate_21plus = fecha – 21,
ICU_07da = zoo::rollmean(icu_patients_per_million, k = 7, fill = NA),
ICUdate_14plus = fecha – 14)
ggplot(dfNLD)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=HOSPdate_14plus , y=log(hosp_07da), color=”Nuevo Hosp”))+
geom_line(aes(x=ICUdate_14plus , y=log(ICU_07da), color=”Nueva UCI”))+
geom_line(aes(x=deathdate_21plus, y=log(deaths_07da), color=”Nuevas Muertes”))+
escala_color_manual(nombre=””,
valores=c(‘gris’, ‘rojo’, ‘verde’, ‘azul’),
etiquetas = c(“Casos”, “Hospital 14 días después”, “UCI 14 días después”,”Muertes 21 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Casos Nuevos, Hospital, UCI y Muertes (escala logarítmica)”,
title=”Casos nuevos frente a hospital, UCI y muertes en una escala logarítmica de promedio móvil de 7 días”) knitr::opts_chunk$set(fig.width=unit(25,”cm”), fig.height=unit(11 ,”cm”))
dfNLD<-df%>%
dplyr::filter(iso_code == “NLD”)%>%
dplyr::select(date,iso_code,date,new_cases_per_million, hosp_patients_per_million,icu_patients_per_million,new_deaths_per_million)%>%
dplyr::mutate(cases_07da = zoo::rollmean(new_cases_per_million, k = 7, fill = NA),
hosp_07da = zoo::rollmean(hosp_patients_per_million, k = 7, fill = NA),
HOSPdate_14plus = fecha – 14,
death_07da = zoo::rollmean(new_deaths_per_million, k = 7, fill = NA),
deathdate_21plus = fecha – 21,
ICU_07da = zoo::rollmean(icu_patients_per_million, k = 7, fill = NA),
ICUdate_14plus = fecha – 14)
mi.animación<-ggplot(dfNLD)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=HOSPdate_14plus , y=log(hosp_07da), color=”Nuevo Hosp”))+
geom_line(aes(x=ICUdate_14plus , y=log(ICU_07da), color=”Nueva UCI”))+
geom_line(aes(x=deathdate_21plus, y=log(deaths_07da), color=”Nuevas Muertes”))+
escala_color_manual(nombre=””,
valores=c(‘gris’, ‘rojo’, ‘verde’, ‘azul’),
etiquetas = c(“Casos”, “Hospital 14 días después”, “UCI 14 días después”,”Muertes 21 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Casos Nuevos, Hospital, UCI y Muertes (escala logarítmica)”,
title=”Casos nuevos frente a hospital, UCI y muertes en una escala logarítmica de promedio móvil de 7 días”)+
transición_revelar(fecha)
animar(mi.animación, ancho=2000, alto=1000,
resolución=150,
fin_pausa = 60,
nframes=300);anim_save(“Covid.gif”)

🔥 Recomendado:  Cómo ganar dinero con una furgoneta (guía 2023)

Como puede ver, solo se necesita una línea simple en el código GGplot para animar la figura anterior. Pero le da una dimensión completamente diferente.

Ahora, lo que quiero agregar a la figura es la evolución de las variantes. Afortunadamente, también tenemos esos datos, así que carguémoslos, grafiquémoslos y conéctelos. Tampoco animé esos datos, aunque podría haberlo hecho. Te dejo ese ejercicio a ti.

variantes_sum<-variantes%>%
group_by(Date_of_statistics_week_start,Variant_name)%>%
resume(ss=sum(Muestra_tamaño),
vc=sum(Variant_cases),
perc=(vc/ss)*100)
variantes_sum$fecha<-variants_sum$fecha_de_estadísticas_semana_inicio
combinado<-merge(dfNLD,variants_sum, by=c("fecha")) g1<-ggplot(combinado)+
geom_line(aes(x=fecha, y=registro(casos_07da), color=”Nuevos Casos”))+
geom_line(aes(x=HOSPdate_14plus , y=log(hosp_07da), color=”Nuevo Hosp”))+
geom_line(aes(x=ICUdate_14plus , y=log(ICU_07da), color=”Nueva UCI”))+
geom_line(aes(x=deathdate_21plus, y=log(deaths_07da), color=”Nuevas Muertes”))+
escala_color_manual(nombre=””,
valores=c(‘gris’, ‘rojo’, ‘verde’, ‘azul’),
etiquetas = c(“Casos”, “Hospital 14 días después”, “UCI 14 días después”,”Muertes 21 días después”))+
tema_bw()+
tema(leyenda.posición=”abajo”)+
laboratorios(x=”Fecha”,
y=”Casos Nuevos, Hospital, UCI y Muertes (escala logarítmica)”,
title=”Casos nuevos frente a hospital, UCI y muertes en una escala logarítmica de promedio móvil de 7 días”)+
scale_x_date(límites = as.Date(c(“2021-01-03”, “2022-02-18”)))
g2<-ggplot(combinado,
aes(x=fecha,
fill=nombre_variante))+
geom_area(aes(y=perc), alfa=0.5)+
tema_bw()+
laboratorios(x=”Fecha”,
y=”Número de variantes/Tamaño de la muestra”,
fill=”Nombre de variante”,
title=”Progresión variante en el tiempo en el NL “)+
tema(leyenda.posición = “abajo”)+
scale_x_date(límites = as.Date(c(“2021-01-03”, “2022-02-18”)))
rejilla.arrange(g1,g2, ncol=1)
plot_grid(g1, g2,
alinear = “v”,
fila = 2,
alturas_rel = c(2/3, 1/3))

Así que ahí lo tenemos. Ahora, la distribución de la columna podría haber sido mejor, tal vez, pero eso también se lo dejo a usted. ¡Disfrutar!


La animación del progreso y las variantes de Covid-19 a lo largo del tiempo se publicó originalmente en Hacia la IA en Medium, donde las personas continúan la conversación resaltando y respondiendo a esta historia.

Publicado a través de Hacia la IA