Ejercicio de la segunda clase de visualización de datos de la especialización en analítica de datos de la universidad Icesi.
data <- read.csv("WHO-COVID-19-global-data.csv", header = TRUE,sep=",", encoding="UTF-8")
Se construye la gráfica global de nuevos casos reportados de coronavirus en el mundo.
library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_cases))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase
Y la gráfica de nuevas muertes reportadas a nivel global.
library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_deaths))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevas Muertes", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase
En las gráficas anteriores no es claro el aporte continental a los nuevos casos globales. Para esto, se incluye la marca de color en la construcción de la gráfica.
library(ggplot2)
plotBase <- ggplot(data, aes(data$X.U.FEFF.Date_reported, data$New_cases, fill=data$WHO_region))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Global")
# plot chart
plotBase
Para hacer un análisis más adecuado, es idóneo segmentar por continente los datos antes de la construcción del display.
library(ggplot2)
america <- subset(data, data$WHO_region=="AMRO")
plotBase <- ggplot(america, aes(america$X.U.FEFF.Date_reported, america$New_cases))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + labs(title = "COVID-19 Global deaths over time", x= "Date")
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 America")
# plot chart
plotBase
Finalmente, se quiere conocer el aporte individual de un país. Se construye un lineplot con la información histórica de Brazil.
library(ggplot2)
brazil <- subset(data, data$Country=="Brazil")
plotBase <- ggplot(brazil, aes(brazil$X.U.FEFF.Date_reported, brazil$New_cases, group=Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Brazil")
# plot chart
plotBase
Una de las preocupaciones actuales, es la forma en que Brazil puede influir en la aparición de nuevos casos en la región de la amazonía. Para evidenciar esto resulta interesante comparar el aporte de casos puesto por Brazil contra los demás países que comparten la amazonía: Colombia, Perú, Bolivia y Venezuela.
library(ggplot2)
amazonia <- subset(data, data$Country %in% c("Brazil","Colombia","Peru", "Bolivia (Plurinational State of)", "Venezuela (Bolivarian Republic of)"))
plotBase <- ggplot(amazonia, aes(amazonia$X.U.FEFF.Date_reported, amazonia$New_cases, fill=amazonia$Country))
plotBase <- plotBase + geom_bar(stat="identity")
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Amazonia")
# plot chart
plotBase
También resulta interesante comparar la aparición de nuevos casos contra otros países que hayan tenido picos de contagios y de muertes. Inicialmente se realizó contra los países europeos que ya están levantando restricciones: Francia, Italia, Reino Unido y España.
library(ggplot2)
topCountries <- subset(data, data$Country %in% c("Brazil","Italy", "Spain", "The United Kingdom", "France"))
plotBase <- ggplot(topCountries, aes(topCountries$X.U.FEFF.Date_reported, topCountries$New_cases, group=topCountries$Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 Países Mayor Número de Casos (excluyendo USA)")
plotBase <- plotBase + facet_grid(Country ~.)
# plot chart
plotBase
Así mismo, es interesante compararlo contra el país que en este momento lidera el número de contagios: Estados Unidos. En este caso la escala del eje y cambia para adaptarse al pico máximo que se obtuvo en USA entre el 24 y el 26 de Abril.
library(ggplot2)
brzusa <- subset(data, data$Country %in% c("Brazil","United States of America"))
plotBase <- ggplot(brzusa, aes(brzusa$X.U.FEFF.Date_reported, brzusa$New_cases, group=brzusa$Country))
plotBase <- plotBase + geom_line()
# accommodate labels
plotBase <- plotBase + theme(axis.text.x = element_text(angle = 90, size = 6, hjust = 1))
plotBase <- plotBase + labs(y="Nuevos Casos", x="Fecha", title="Covid 19 BRZ vs USA")
plotBase <- plotBase + facet_grid(Country ~.)
# plot chart
plotBase
Sin lugar a dudas el uso de herramientas visuales para el análisis de datos resulta mucho más comprensible e intuitivo en grandes volumenes de datos. Combinar marcas adicionales, como el color, aporta significativamente a la forma en que podemos interpretarlos y sacar conclusiones.