data <- read.csv("WHO-COVID-19-global-data.csv")
# Convertir primera columna a Fechas
data$Date_reported <- as.Date(data$Date_reported,format="%Y-%m-%d%t")
data$Country_code <- as.factor(data$Country_code)
data$Country <- as.factor(data$Country)
data$WHO_region[data$Country =="undefined"] <- "OTHER"
data$WHO_region <- as.factor(data$WHO_region)
Distribución mundial de casos a partir del 6 de enero de 2020. Datos de la Organizacion Mundial de la Salud
library(ggplot2)
# creo el objeto ggplot
grafica <- ggplot(data, aes(Date_reported, data$New_cases))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=7))
grafica <- grafica + labs(y= "Nuevos casos", x="Fecha", title= "Nuevos Casos Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
# creo el objeto ggplot
grafica <- ggplot(data, aes(Date_reported, data$Cumulative_cases, fill=WHO_region))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=7))
grafica <- grafica + labs(y= "Casos Acumulados ", x="Fecha", title= "Acumulados Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
# creo el objeto ggplot
grafica <- ggplot(data, aes(data$Date_reported, data$New_deaths))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevas muertes", x="Fecha", title= "Nuevas muertes Covid 19 Global")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
# creo el objeto ggplot
grafica <- ggplot(data, aes(data$Date_reported, data$Cumulative_deaths, fill=WHO_region))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes", x="Fecha", title= "Muertes acumuladas por region Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
grafica <- ggplot(data, aes(data$Date_reported, data$New_deaths, fill=WHO_region))
grafica <- grafica + geom_bar(stat="identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes", x="Fecha", title= "Muertes diarias por region Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica <- grafica + facet_grid(data$WHO_region~.)
grafica
america <- subset(data, data$WHO_region=="AMRO")
# creo el objeto ggplot
grafica <- ggplot(america, aes(Date_reported, america$New_cases))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevos casos Americas", x="Fecha", title= "Covid 19 America")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
codes <- c("BR","US", "CO","PE", "MX", "AR", "CA", "CL")
countries <- america[america$Country_code %in% codes,]
# creo el objeto ggplot
grafica <- ggplot(countries,aes(x=Date_reported, y=Cumulative_cases) )
grafica <- grafica + geom_line(aes(color=Country), size=2, alpha=0.7)
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevos casos acumulados", x="Fecha", title= "Acumulado de casos diarios Americas Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
# creo el objeto ggplot
grafica <- ggplot(countries,aes(x=Date_reported, y=Cumulative_deaths) )
grafica <- grafica + geom_line(aes(color=Country), size=2, alpha=0.7)
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Muertes acumuladas", x="Fecha", title= "Muertes acumuladas Americas Covid 19")
grafica <- grafica + scale_x_date(date_breaks = "1 week", date_labels = "%y %b %d")
grafica
# Seleccionando las fechas
dates <- c(as.Date("2020-05-25"), as.Date("2020-05-18"), as.Date("2020-05-11"), as.Date("2020-05-4"), as.Date("2020-04-27"), as.Date("2020-04-20"), as.Date("2020-04-13"), as.Date("2020-04-06"))
lastWeeks <- countries[countries$Date_reported %in% dates,]
# Convert the dataframe from long to wide.
# See data manipulation: https://datascienceplus.com/data-manipulation-in-r-with-reshape2/
library(reshape2)
lastWeeks_wide <- dcast(lastWeeks, Country_code + Country ~ Date_reported, value.var = 'New_cases')
# LibrerÃa de coordenadas paralellas
library(GGally)
## Registered S3 method overwritten by 'GGally':
## method from
## +.gg ggplot2
grafica <- ggparcoord(lastWeeks_wide,
# This adds all the columns as axes of the plot
columns = 3:10,
# This is the column in the dataset with the categories to group the datapoints
groupColumn = "Country",
# How to scale the variables in the parallel coordinate plot
scale = 'globalminmax',
# Enable the visualization of points on axes
showPoints = TRUE,
# Add title
)
# Paleta de color personalizada
colorSequence <- c("#b7120e","#b5a04d","#005fb6","#fcdb02","#0c3f50","#f67f25","#21cae7","#1c1d4b", "#FF9900")
grafica <- grafica + scale_color_manual(values = colorSequence)
# Ocultar lÃneas horizontales
grafica <- grafica + theme(
panel.background = element_rect(fill = NA),
panel.grid.major = element_line(colour = "grey90"),
panel.grid.major.y = element_blank(),
panel.grid.minor.y = element_blank()
)
# Titulo y etiquetas
grafica <- grafica + labs(title = "Últimas ocho semanas en los mayores paÃses de América", subtitle = "Datos reportados cada lunes a partir de Abril 6", x = "Semanas", y = "Nuevos Casos")
# Mostrar gráfica
grafica
La gráfica de la curva de tendencia usando la function geom_smooth() necesita que los datos del eje X sean parte de una secuencia continua. Es decir que la variable usada para el eje X no puede ser una variable categoria o factor. En nuestro caso, al aplicar la function as.Date() a la columna de fechas, esta se covierte en una secuencia que podemos usar para graficar la curva con geom_smooth(). Naturalmente, los datos del eje Y deben numéricos, pero a diferencia de las gráficas anteriores, en este caso necesitamos hacer una operación con rowsum() para tener columnas con la sumatoria de todos los paises por cada una de las fechas.
# Obtengo sumatoria de variables por factor
dataNew <-rowsum(data[,5:8],group = data$Date_reported)
# conservo la columna Date_reported
dataNew$Date_reported<-row.names(dataNew)
# Transformo los datos a fechas
dataNew$Date_reported<-as.Date(dataNew$Date_reported)
grafica <- ggplot(dataNew, aes(Date_reported, New_deaths))
grafica <- grafica + geom_bar(stat = "identity")
grafica <- grafica + geom_smooth(method = "loess")
grafica <- grafica + theme(axis.text.x = element_text(angle=90, size=6))
grafica <- grafica + labs(y= "Nuevas muertes", x="Fecha", title= "Nuevas muertes Covid 19 Global")
grafica
## `geom_smooth()` using formula 'y ~ x'