Durante el confinamiento de la pandemia del COVID-19, el uso del Metro de Madrid descendió dramáticamente. Desde la cuenta de @metro_madrid en Twitter se ha ido informando del número de viajeros. Desafortunadamente, han dejado de hacerlo el 14 de julio. Espero que viendo estas gráficas vuelvan a informar del uso de su infraestructura
Importamos de tidyverse las siguientes librerías
library(readr)
library(dplyr)
library(ggplot2)
locale(date_names = "es", date_format = "%AD", time_format = "%AT",
decimal_mark = ",", grouping_mark = ".", tz = "UTC",
encoding = "UTF-8", asciify = FALSE)
## <locale>
## Numbers: 123.456,78
## Formats: %AD / %AT
## Timezone: UTC
## Encoding: UTF-8
## <date_names>
## Days: domingo (dom.), lunes (lun.), martes (mar.), miércoles (mié.), jueves
## (jue.), viernes (vie.), sábado (sáb.)
## Months: enero (ene.), febrero (feb.), marzo (mar.), abril (abr.), mayo (may.),
## junio (jun.), julio (jul.), agosto (ago.), septiembre (sept.),
## octubre (oct.), noviembre (nov.), diciembre (dic.)
## AM/PM: a. m./p. m.
Los datos de número de pasajeros se han obtenido de los tweets del @metro_madrid que incluían el hashtag #DatosMetro y que informaban sobre el número de viajeros
Los datos no son uniformes:
Los datos de las menciones a las mascarillas se han obtenido por webscraping a la web de Twitter mediante la consulta “@metro_madrid AND mascarillas”
pasajeros <- read_csv2("pasajeros_metro.csv")
mascarillas <- read_csv2("mascarillas.csv")
Contrastamos las evoluciones del año 2020 respecto al 2019.
La evolución del 2019 se calcula en función del dato que ofrece @metro_madrid al decir que:
“En la fecha x el número de viajeros fue un y% menor que el año anterior”
tipo de tweet de @DatosMetro
La línea del año 2019 contiene algunos picos:
p_df <- data.frame(pasajeros) #lo convertimos en dataframe
p_df$Fecha <- as.Date(p_df$Fecha,format="%d/%m/%Y")
p_df$X2020 <- p_df$X2020/1000 #lo cambiamos a unidades de miles
#añadimos una columna con el cáculo del porcentaje de referencia del 2020 al 2019
p_df <- mutate( p_df, X2019 = (p_df$X2020)/(100-p_df$X2019_menos)*100)
ggplot()+
geom_line( data= p_df, aes(x = Fecha, y = X2020, color="Viajeros 2020"))+
geom_line( data= p_df, aes(x = Fecha, y = X2019,color="Viajeros 2019"))+
scale_colour_manual('', values = c('#46ACC8','#B40F20')) +
theme(text=element_text(size=9, family="Arial"))+
theme(plot.title=element_text(size=10,family="Arial",face="bold"))+
labs(x = "Tiempo en días", y = "Pasajeros (en miles)",
title = "Evolución de los pasajeros del metro 2019-2020")+
annotate(data= p_df,geom="text",x=as.Date("2020/03/16"),y=400,
label="16/03\n20:00",size=2.5,color="red",hjust = 0,
fontface = 'italic')+
annotate(data= p_df,geom="text",x=as.Date("2020/03/24"),y=300,
label="24/03\n18:00",size=2.5,color="red",hjust = 0,
fontface = 'italic')+
annotate(data= p_df,geom="text",x=as.Date("2020/06/26"),y=600,
label="26/06\nCierre\nservicio",size=2.5,color="red",
hjust = 0,fontface = 'italic')
ggsave("evolución_metro.png")
m_df <- data.frame(mascarillas) #lo convertimos en dataframe
m_df$date <- as.Date(m_df$date,format="%d/%m/%Y")
ggplot()+
geom_bar( data= m_df, aes(x = date, y = ..count..),
color = 'white',
fill = 'cornflowerblue')+
geom_line( data= p_df, aes(x = Fecha, y =X2020,color="Viajeros 2019"))+
scale_colour_manual('', values = c('#B40F20')) +
theme(text=element_text(size=9, family="Arial"))+
theme(plot.title=element_text(size=10,family="Arial",face="bold"))+
labs(x = "Tiempo en días", y = "Pasajeros (en miles)",
title = "Número de menciones a mascarillas vs. número de viajeros")+
annotate(data= p_df,geom="text",x=as.Date("2020/04/13"),y=200,
label="13/04\nLa policía\nreparte mascarillas",size=2.75,color="cornflowerblue",vjust = 0,
fontface = 'italic')
ggsave("evolución_mascarilla.png")