Este cuaderno visualiza los mapas de la distribución de los pisos de la Sareb

Cargar librerías

library(tidyverse)
library(ggrepel)   # para etiquetas
library(RColorBrewer)
library(mapSpain)
library(sf)
library(ggthemes)    # Temas

Leer datos

fecha_2023 <- "17 de abril 2023"
fecha_2025 <- "13 de enero 2025"
pisos <- read_delim (
  "https://raw.githubusercontent.com/congosto/congosto.github.io/refs/heads/master/sareb_por_provincia_2025.csv",
  delim =";")

Mapa de pisos por autonomía 2023

url_file_coor_ccaa <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/shapes/spain_regions_utm.csv"
coor_ccaa <- read_delim (url_file_coor_ccaa , delim =";",
                         locale = locale ( decimal_mark = ".", grouping_mark = ","))
mapSpain_ccaa <- esp_get_ccaa()
Can <- esp_get_can_box()
df <- pisos %>%
  group_by(Autonomia) %>%
  summarise(num_pisos = sum(pisos_2023))

pisos_iso_ine <- left_join  (df,coor_ccaa, by = c("Autonomia" = "ISO_name"))
map_autonomias_pisos <-left_join (mapSpain_ccaa,pisos_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(0,15000, by = 2500))
ggplot(data = map_autonomias_pisos ) +
  geom_sf(
    aes(
      fill = num_pisos),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(
      label = num_pisos
    ),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos disponibles de la Sareb por autonomía",
    subtitle = fecha_2023,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de pisos por provincia 2023

mapSpain_prov <- esp_get_prov()
map_provincias_pisos <-left_join (mapSpain_prov,pisos, by = c("ine.prov.name"="provincia" ))
breaks <- c(seq(0,7000, by = 1500))
Can <- esp_get_can_box()
ggplot(data =map_provincias_pisos ) +
  geom_sf(
    aes(
      fill = pisos_2023),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(label = pisos_2023),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos disponibles de la Sareb por provincia",
    subtitle = fecha_2023,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de pisos por autonomía 2025

url_file_coor_ccaa <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/shapes/spain_regions_utm.csv"
coor_ccaa <- read_delim (url_file_coor_ccaa , delim =";",
                         locale = locale ( decimal_mark = ".", grouping_mark = ","))
mapSpain_ccaa <- esp_get_ccaa()
Can <- esp_get_can_box()
df <- pisos %>%
  group_by(Autonomia) %>%
  summarise(num_pisos = sum(pisos_2025))
pisos_iso_ine <- left_join  (df,coor_ccaa, by = c("Autonomia" = "ISO_name"))
map_autonomias_pisos <-left_join (mapSpain_ccaa,pisos_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(0,15000, by = 2500))
ggplot(data = map_autonomias_pisos ) +
  geom_sf(
    aes(
      fill = num_pisos),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(label = num_pisos),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos disponibles de la Sareb por autonomía",
    subtitle = fecha_2025,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de pisos por provincia 2025

mapSpain_prov <- esp_get_prov()
map_provincias_pisos <-left_join (mapSpain_prov,pisos, by = c("ine.prov.name"="provincia" ))
breaks <- c(seq(0,7000, by = 1500))
Can <- esp_get_can_box()
ggplot(data =map_provincias_pisos ) +
  geom_sf(
    aes(
      fill = pisos_2025),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(label = pisos_2025),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos disponibles de la Sareb por provincia",
    subtitle = fecha_2025,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de diferencia de pisos 2025 -2023 por autonomía

url_file_coor_ccaa <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/shapes/spain_regions_utm.csv"
coor_ccaa <- read_delim (url_file_coor_ccaa , delim =";",
                         locale = locale ( decimal_mark = ".", grouping_mark = ","))
mapSpain_ccaa <- esp_get_ccaa()
Can <- esp_get_can_box()
df <- pisos %>%
  group_by(Autonomia) %>%
  summarise(num_pisos = sum(pisos_2025-pisos_2023)) %>%
  mutate(text_color = ifelse(num_pisos >= 0, "grey50","#a70317"))
pisos_iso_ine <- left_join  (df,coor_ccaa, by = c("Autonomia" = "ISO_name"))
map_autonomias_pisos <-left_join (mapSpain_ccaa,pisos_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(-2500, 600, by = 500))
ggplot(data = map_autonomias_pisos ) +
  geom_sf(
    aes(
      fill = num_pisos),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(
      label = num_pisos,
      color = text_color
    ),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.8, 
    label.size = 0) +
  scale_fill_gradient (
    low = "#e30120",high = "#018ae3",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Diferencia de pisos  de la Sareb disponibles entre 2025 y 2023",
    subtitle = paste("Entre", fecha_2025, "y", fecha_2023),
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Diferencia\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de diferencia de pisos 2025 -2023 por provincia

mapSpain_prov <- esp_get_prov()
map_provincias_pisos <-left_join (mapSpain_prov,pisos, by = c("ine.prov.name"="provincia" ))  %>%
  mutate(diff_pisos = pisos_2025-pisos_2023) %>%
  mutate(text_color = ifelse(diff_pisos >= 0, "grey50","#a70317"))
breaks <- c(seq(-1500, 1200, by = 500))
Can <- esp_get_can_box()
ggplot(data =map_provincias_pisos ) +
  geom_sf(
    aes(
      fill = diff_pisos),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(
      label = diff_pisos,
      color = text_color
    ),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.8, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#e30120",high = "#018ae3",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Diferencia de pisos de la Sareb disponibles entre 2025 y 2023 por provincia",
    subtitle = paste("Entre", fecha_2025, "y", fecha_2023),
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Diferencia\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de pisos por autonomía 2025

url_file_coor_ccaa <- "https://raw.githubusercontent.com/montera34/escovid19data/master/data/original/shapes/spain_regions_utm.csv"
coor_ccaa <- read_delim (url_file_coor_ccaa , delim =";",
                         locale = locale ( decimal_mark = ".", grouping_mark = ","))
mapSpain_ccaa <- esp_get_ccaa()
Can <- esp_get_can_box()
df <- pisos %>%
  group_by(Autonomia) %>%
  summarise(num_pisos = sum(en_obra_2025))
pisos_iso_ine <- left_join  (df,coor_ccaa, by = c("Autonomia" = "ISO_name"))
map_autonomias_pisos <-left_join (mapSpain_ccaa,pisos_iso_ine, by = c("ine.ccaa.name"="INE_name" ))
breaks <- c(seq(0,150000, by = 500))
ggplot(data = map_autonomias_pisos ) +
  geom_sf(
    aes(
      fill = num_pisos),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(label = num_pisos),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos en obra de la Sareb por por autonomía",
    subtitle = fecha_2025,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

Mapa de obra mueva 2025 por provincia

mapSpain_prov <- esp_get_prov()
map_provincias_pisos <-left_join (mapSpain_prov,pisos, by = c("ine.prov.name"="provincia" ))
breaks <- c(seq(0,4000, by = 500))
Can <- esp_get_can_box()
ggplot(data =map_provincias_pisos ) +
  geom_sf(
    aes(
      fill = en_obra_2025),
      color = "grey70") + 
  geom_sf(data = Can, color = "grey70") +
  geom_sf_label (
    aes(label = en_obra_2025),
    stat = "sf_coordinates",
    size = 3,
    fill = "white",
    alpha = 0.5, 
    label.size = 0,
    color = "grey40") +
  scale_fill_gradient (
    low = "#fff7bc",high = "#d95f0e",
    guide = guide_legend(),
    breaks =breaks) +
  labs(
    title = "Pisos en obra de la Sareb por provincia",
    subtitle = fecha_2025,
    x = "",
    y = "") +
  guides(fill = guide_legend(title = "Número\nde Pisos")) +
  guides(colour = "none") +
  theme_void() +
  theme (
    legend.position = c(0.1, 0.6),
    title = element_text(color  = "grey50", size = 12),
    legend.text =  element_text(color  = "grey50", size = 8))

```