Baños públicos del ayuntamiento de Madrid: una animación

# Los baños públicos de madrid

Como algunos sabréis tengo especial sensibilidad hacia los baños: mi enfermedad crónica me ha convertido en una persona dedicada a su estudio informal. Una de las cosas que más habitualmente hago es usar baños públicos, en ocasiones es un auténtico reto urbano. Todo esto lo cuento porque recientementer he visto que en el portal de datos de Madrid existe una base de datos con los baños públicos (de pago, 0.10€, porque las ciudad tienen consumidores, no ciudadanos…) con sus localizaciones. Con ella podemos saber algunas cosillas interesantes. Aunque nunca hay que olvidar aspectos cualitativos, por ejemplo en Intercambiador de Moncloa haría falta quizá un baño de este ya que los que hay son inusables.

Todo el código R aquí.

 

 

 

 
rm(list=ls());gc()
if (!require('pacman')) install.packages('pacman'); library('pacman') 
# ## install release version from CRAN
# install.packages("googleway")
# ## To install the development version you currently need v0.7.1002 of googlePolylines
# devtools::install_github("SymbolixAU/googlePolylines")
# ## then you can install googleway
# devtools::install_github("SymbolixAU/googleway")
devtools::install_github('thomasp85/gganimate', ref = 'v0.1.1')
pacman::p_load(googleway, tidyverse, ggmap, data.table, RColorBrewer, knitr, gganimate, lubridate)
# datos tomados de https://datos.madrid.es/sites/v/index.jsp?vgnextoid=edcaaa8cf6bda510VgnVCM1000001d4a900aRCRD&vgnextchannel=374512b9ace9f310VgnVCM100000171f5a0aRCRD
df <- fread("Aseos Publicos Operativos.csv",dec = ",")
df$lon <- as.numeric(df$LONGITUD)
df$lat <- as.numeric(df$LATITUD)
df$fecha <- dmy(df$`FECHA PUESTA EN SERVICIO`)
df$year <- year(df$fecha)
df %>% head(3) %>% kabl

Ahora vamos a hacer un mapa con los baños en Madrid. Importante poner la clave correcta de la API : )

 

register_google(key = "tu api aqui")
mad = qmap("madrid", zoom = 12, source = "stamen")
mad_map <- mad + 
  geom_point(data = df, aes(x=lon, y = lat), alpha=0.8, color = "#800000", size = 3)
mad_map


Como podemos ver. Parece que los 118 baños están bastante repartidos aunque a medida que te acercas al centro, su número aumenta.

 
df %>% group_by(DISTRITO) %>% 
  summarise(n=n()) %>% arrange(desc(n)) %>% kable 

iempre me ha interesado como se despliegan las cosas en la ciudad. Me da la impresión que siempre todo empieza (y casi acaba) en el centro. Para ello he decidido hacer un mapa animado. Para ver por cada año como van apareciendo los baños. Yo hago el gif, las conclusiones las dejo al lector.

Aspectos técnicos a tener en cuenta… Bueno, gganimate tuvo un gran cambio en sus nuevas versiones que lo hacen más potente, pero está muy mal documentado. Así que nos quedamos con la versión 0.1.1. Hacer la animación es lo que más tiempo me ha llevado. Tienes que ejecutar Rstudio como administrador y bajarte ImageMagick con sus dependencias legacy.

 
suppressWarnings(
  mad_map_2 <- mad + 
    geom_point(data = df, aes(x=lon, y = lat), alpha=0.4, color = "black",  size = 3) +
    geom_point(data = df, aes(x=lon, y = lat, frame = year), color = "red", size = 3) +
    ggtitle("Baños públicos instalados en Madrid") + theme(plot.title = element_text(size=22))
)
gganimate(mad_map_2, interval = 2)
gganimate(mad_map_2,filename = "plots/baños.mp4", interval = 2)
gganimate(mad_map_2,filename = "plots/baños.gif", interval = 2)

Y aquí ya estaría la animación.