library(tidyverse)
## Registered S3 methods overwritten by 'ggplot2':
##   method         from 
##   [.quosures     rlang
##   c.quosures     rlang
##   print.quosures rlang
## -- Attaching packages ---------------------------------------------------------------------------------------------------------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 3.1.1       v purrr   0.3.2  
## v tibble  2.1.1       v dplyr   0.8.0.1
## v tidyr   0.8.3       v stringr 1.4.0  
## v readr   1.3.1       v forcats 0.4.0
## -- Conflicts ------------------------------------------------------------------------------------------------------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
library(sf)
## Linking to GEOS 3.6.1, GDAL 2.2.3, PROJ 4.9.3

INTRODUCCION

El objetivo de este trabajo es analizar la distribución espacial, en la Ciudad de Buenos Aires, de las viviendas identificadas como “VIVIENDAS DE MATERIAL PRECARIO”, según el padron de AGIP por el cual tributan el inmobiliario y ABL en relación a la distribución de los hogares que presentan viviendas de calidad deficitaria, según el Censo Nacional de Población y Viviendas del año 2010. Se busca determinar si existe un patrón de distribución similar entre ambos casos.

DESARROLLO

Parte 1: Distribución espacial de Viviendas de material precario (AGIP)

En esta parte del trabajo se emplearon los siguientes dataset:

  1. item.csv: contiene la información de los destinos constructivos de las parcelas de la CABA, según el padrón de AGIP, en base al cual tributan el impuesto inmobiliario y ABL (alumbrado, barrido y limpieza).

  2. mat.csv: presenta en su estructura la identificación de la Partida Matriz (identificación unívoca de una parcela) con su nomenclatura catastral, sección, manzana y parcela (smp).

  1. manzanas.shp: archivo shapefile que contiene los límites de las manzanas catastrales de la Ciudad de Buenos Aires.

  2. barrios.geojson: capa geográfica que presenta los límites de los barrios de la Ciudad de Buenos Aires.

Paso 1: Apertura, limpieza y visualización de datasets

Comenzamos con el dataset “mat.csv”

mat <- read.csv2("DATOS_TP/TABLAS/mat.csv") 

Visualizamos sus primeros 6 registros:

head(mat)
##   MATRIZ SECCION MANZANA PARCELA
## 1      4      77     147    023B
## 2      7      77     147     019
## 3     12      77     147     013
## 4     16      77     147     009
## 5     18      77     147     007
## 6     20      77     147     005

Luego añadimos en la tabla dos nuevos campos: uno que combina la información de sección y manzana (sm) y otro que une la información de sección, manzana y parcela (smp). Estos campos fueron creados ya que serán útiles más adelante para hacer operaciones de join entre datasets.

mat <- mat %>% 
  mutate(SECCION = paste(0, SECCION, sep = ""), #agrego 0 a la informacion de sección
         sm = paste(SECCION, MANZANA, sep = "-"),
         smp = paste(SECCION, MANZANA, PARCELA, sep = "-"))
head(mat)
##   MATRIZ SECCION MANZANA PARCELA      sm          smp
## 1      4     077     147    023B 077-147 077-147-023B
## 2      7     077     147     019 077-147  077-147-019
## 3     12     077     147     013 077-147  077-147-013
## 4     16     077     147     009 077-147  077-147-009
## 5     18     077     147     007 077-147  077-147-007
## 6     20     077     147     005 077-147  077-147-005

Luego continuamos con el dataset “item.csv”

item <- read.csv2("DATOS_TP/TABLAS/item.csv")

Corregimos de la tabla el campo AÑO_CONST para que la información del mismo se muestre con formato de tipo “fecha” y no como números decimales.

item <- item %>% 
  mutate(AÑO_CONST = AÑO_CONST * 1000)
head(item)
##   MATRIZ ITEM SUPERFICIE                        DESTINO CATEGORIA EST_ITEM
## 1      4    1        634         VIVIENDA MULTIFAMILIAR         E    Bueno
## 2      4    2        139         VIVIENDA MULTIFAMILIAR         D    Bueno
## 3      4    3        216         VIVIENDA MULTIFAMILIAR         D    Bueno
## 4      4    4        426     LOCALES, GALERIAS, CAJEROS         E    Bueno
## 5      4    5        454     LOCALES, GALERIAS, CAJEROS         E    Bueno
## 6      7    1        183 VIV.UNIFAMILIAR Y CASAS VELAT.         D    Bueno
##   AÑO_CONST
## 1      1950
## 2      1960
## 3      1950
## 4      1950
## 5      1960
## 6      1920

Paso 2: Filtro-selección de registros y operaciones Join entre datasets

Realizamos un filtro de registros que se corresponden con el DESTINO: “VIVIENDA MATERIAL PRECARIO” mediante el comando “filter” en la tabla “item”.A la nueva tabla generada le designamos el nombre: “item_vmatp”

item_vmatp <- filter(item, DESTINO == "VIVIENDA MATERIAL PRECARIO")
head(item_vmatp)
##   MATRIZ ITEM SUPERFICIE                    DESTINO CATEGORIA EST_ITEM
## 1    650    3         54 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 2    796    5          8 VIVIENDA MATERIAL PRECARIO         F    Bueno
## 3    895    2         30 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 4   1225    4         21 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 5   1226    2         38 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 6   1240    6         25 VIVIENDA MATERIAL PRECARIO         E  Regular
##   AÑO_CONST
## 1      1960
## 2      1970
## 3      1970
## 4      1970
## 5      1960
## 6      1970

Luego se realizaron 2 operaciones join:

  1. JOIN N°1: entre “item_vmatp” y “mat” (mediante el campo común denominado MATRIZ). Luego del join, cada registro obtuvo su identificación catastral (sm y smp) y se generó una nueva tabla denominada “mat_vmatp”.

  2. JOIN N°2: join entre “mat_vmatp” con el archivo “manzanas.shp”, mediante el campo común “sm”. De esta manera se logró que cada registro tenga su información de localización espacial (coordenadas) para luego poder visualizar en un mapa la distribución de las viviendas de material precario.

JOIN N°1: “item_vmatp” con “mat”:

"mat_vmatp" <- left_join(item_vmatp, mat)
## Joining, by = "MATRIZ"
head(mat_vmatp)
##   MATRIZ ITEM SUPERFICIE                    DESTINO CATEGORIA EST_ITEM
## 1    650    3         54 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 2    796    5          8 VIVIENDA MATERIAL PRECARIO         F    Bueno
## 3    895    2         30 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 4   1225    4         21 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 5   1226    2         38 VIVIENDA MATERIAL PRECARIO         E    Bueno
## 6   1240    6         25 VIVIENDA MATERIAL PRECARIO         E  Regular
##   AÑO_CONST SECCION MANZANA PARCELA      sm         smp
## 1      1960     077     133     012 077-133 077-133-012
## 2      1970     077     137     031 077-137 077-137-031
## 3      1970     077     125     025 077-125 077-125-025
## 4      1970     077     121     005 077-121 077-121-005
## 5      1960     077     121     004 077-121 077-121-004
## 6      1970     077     106     019 077-106 077-106-019

Como resultado final obtuvimos que de 140.986 destinos constructivos para toda la Ciudad de Buenos Aires, 1343 se corresponden con VIVIENDAS DE MATERIAL PRECARIO, según AGIP.

Antes de realizar el JOIN N°2 agrupamos por sm los registros de viviendas (identicados por sm luego del join) mediante el comando “Group_by” en la tabla “mat_vmatp” y luego contabilizamos la cantidad de viviendas por manzana catastral mediante el comando “Summarise”.

Aplicamos la herramienta GROUP_BY por “sm” en “mat_vmatp” y generamos una nueva tabla llamada “sm_vmatp”:

sm_vmatp <- mat_vmatp %>% 
  group_by(sm) %>% 
  summarise(casos = n())
head(sm_vmatp)
## # A tibble: 6 x 2
##   sm       casos
##   <chr>    <int>
## 1 01-053       1
## 2 010-067      2
## 3 010-094      1
## 4 010-099      1
## 5 010-102A     3
## 6 010-106      1

Se obtuvo de esta manera la cantidad de viviendas de material precario (campo “casos”) por manzana catastral. Resultó un total de 924 manzanas que presentan la categoria de vivienda de material precario.

JOIN N°2: entre “sm_vmatp” y el archivo “manzanas.shp” mediante el campo en común “sm”. Al archivo espacial resultante se lo denominó “mza_vmatp”.

Primero leímos el archivo espacial de manzanas catastrales:

manzanas <- st_read("DATOS_TP/INFORMACION ESPACIAL/manzanas.shp")
## Reading layer `manzanas' from data source `I:\TRABAJO FINAL\TRABAJO FINAL\DATOS_TP\INFORMACION ESPACIAL\manzanas.shp' using driver `ESRI Shapefile'
## Simple feature collection with 12526 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.53042 ymin: -34.70389 xmax: -58.33514 ymax: -34.52755
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
head(manzanas)
## Simple feature collection with 6 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.43173 ymin: -34.63911 xmax: -58.41601 ymax: -34.63756
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
##   featid1 seccion manzana       sm                       geometry
## 1    8895     038     030  038-030 POLYGON ((-58.43173 -34.638...
## 2    8874     038    147B 038-147B POLYGON ((-58.42274 -34.637...
## 3    8867     038     048  038-048 POLYGON ((-58.43051 -34.637...
## 4    8862     038    147A 038-147A POLYGON ((-58.42202 -34.637...
## 5    8860     038     219  038-219 POLYGON ((-58.4172 -34.6383...
## 6    8841     038     066  038-066 POLYGON ((-58.42925 -34.637...

Luego realizamos el JOIN entre “manzanas” y “sm_vmatp”:

"mza_vmatp" <- left_join(manzanas, sm_vmatp)
## Joining, by = "sm"
## Warning: Column `sm` joining factor and character vector, coercing into
## character vector

Exploramos el archivo shapefile resultante:

head(mza_vmatp)
## Simple feature collection with 6 features and 5 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.43173 ymin: -34.63911 xmax: -58.41601 ymax: -34.63756
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
##   featid1 seccion manzana       sm casos                       geometry
## 1    8895     038     030  038-030    NA POLYGON ((-58.43173 -34.638...
## 2    8874     038    147B 038-147B    NA POLYGON ((-58.42274 -34.637...
## 3    8867     038     048  038-048    NA POLYGON ((-58.43051 -34.637...
## 4    8862     038    147A 038-147A    NA POLYGON ((-58.42202 -34.637...
## 5    8860     038     219  038-219    NA POLYGON ((-58.4172 -34.6383...
## 6    8841     038     066  038-066    NA POLYGON ((-58.42925 -34.637...

Paso 3: mapeo de los resultados

Para representar los resultados obtenidos en un mapa, leímos en primera instancia el archivo espacial “barrios.geojson”:

barrios <- st_read("DATOS_TP/INFORMACION ESPACIAL/barrios.geojson")
## Reading layer `barrios' from data source `I:\TRABAJO FINAL\TRABAJO FINAL\DATOS_TP\INFORMACION ESPACIAL\barrios.geojson' using driver `GeoJSON'
## Simple feature collection with 48 features and 4 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.70574 xmax: -58.33455 ymax: -34.52799
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs

Luego chequeamos el mapeo de la información de barrios de la ciudad:

ggplot() +
  geom_sf(data = barrios)

Antes de mapear la distribución de las viviendas de material precario en la ciudad según AGIP, realizamos una codificamos de la cantidad de casos de viviendas en una escala categórica para obtener una mejor visualización de la distribución espacial de las mismas:

mza_vmatp <- mza_vmatp %>% 
  mutate (precariedad = case_when (
    casos == 1 ~ "un caso",
    casos <= 5 ~ "hasta 5",
    casos <= 10 ~ "hasta 10",
    casos > 10 ~ "mayor a 10"))
head(mza_vmatp)
## Simple feature collection with 6 features and 6 fields
## geometry type:  POLYGON
## dimension:      XY
## bbox:           xmin: -58.43173 ymin: -34.63911 xmax: -58.41601 ymax: -34.63756
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
##   featid1 seccion manzana       sm casos                       geometry
## 1    8895     038     030  038-030    NA POLYGON ((-58.43173 -34.638...
## 2    8874     038    147B 038-147B    NA POLYGON ((-58.42274 -34.637...
## 3    8867     038     048  038-048    NA POLYGON ((-58.43051 -34.637...
## 4    8862     038    147A 038-147A    NA POLYGON ((-58.42202 -34.637...
## 5    8860     038     219  038-219    NA POLYGON ((-58.4172 -34.6383...
## 6    8841     038     066  038-066    NA POLYGON ((-58.42925 -34.637...
##   precariedad
## 1        <NA>
## 2        <NA>
## 3        <NA>
## 4        <NA>
## 5        <NA>
## 6        <NA>

Observamos de la tabla anterior que existen muchos registros sin dato (NA). Como necesitamos trabajar solamente con aquellas manzanas que posean algÚn caso de vivienda de material precario, filtramos de la misma aquellos valores de tipo NA, dejando sólo los registros que poseen dato. Llamamos a esta nueva tabla “mza_vmatp2”.

mza_vmatp2 <- filter(mza_vmatp, casos != "NA")

A continuación representamos en el mapa de barrios la ubicación de las viviendas de material precario según AGIP.

ggplot() +
  geom_sf(data = barrios) +
  geom_sf(data = mza_vmatp2, aes(fill = precariedad), color=NA)  +
  labs(title = "Distribución de Viviendas de material precario (AGIP)",
         subtitle = "Ciudad de Buenos Aires")

Parte 2: Distribución espacial de Hogares con viviendas de calidad deficitaria (Censo 2010, INDEC)

En esta segunda parte del trabajo empleamos el siguiente archivo:

censo_2010.shp: archivo espacial que contiene la información a nivel de radio censal de las variables analizadas en el censo 2010 que a continuación se detallan:

• SUP10: Superficie del radio censal (en hectáreas) • DENS10: Densidad poblacional (cantidad de personas por hectárea) • POB10: Cantidad de población en el radio censal • VIV10: Cantidad de viviendas en el radio censal • HOG10: Cantidad de hogares en el radio censal • HAC_HO10: Número de hogares hacinados en el radio censal • NBI10: Número de hogares con necesidades básicas insatisfechas • NBI_H10: Número de hogares hacinados • NO_VIV10: Número de hogares con viviendas de calidad deficitaria

Paso 1: Exploramos el archivo del censo del año 2010:

CENSO <- st_read("DATOS_TP/INFORMACION ESPACIAL/censo_2010.shp")
## Reading layer `censo_2010' from data source `I:\TRABAJO FINAL\TRABAJO FINAL\DATOS_TP\INFORMACION ESPACIAL\censo_2010.shp' using driver `ESRI Shapefile'
## Simple feature collection with 3593 features and 32 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.70574 xmax: -58.33514 ymax: -34.52799
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
head(CENSO)
## Simple feature collection with 6 features and 32 fields
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.64523 xmax: -58.46358 ymax: -34.53388
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
##       SUP10    DENS10 POB10 VIV10 HOG10 HAC_HO10  Z_AGUA10   Z_CLOA10
## 1 38.983150  12.67214   494   344   233 0.677326  99.14163 100.000000
## 2 12.184900  67.54261   823   346   308 0.890173 100.00000  98.051948
## 3 11.683500  52.29597   611   228   221 0.969298 100.00000  96.832579
## 4  6.806925  74.18915   505   224   195 0.870536 100.00000  99.487179
## 5 11.432690  40.23550   460   128   125 0.976563  99.20000   7.627119
## 6  7.302450 121.19220   885   310   260 0.838710 100.00000  99.610895
##    Z_GAS10   Z_NBI10  Z_NBIH10 Z_NVIV10  Z_NINO10 Z_NEDU10 Z_DESO10
## 1 98.71245  0.000000  0.000000 0.000000  0.000000  9.87395 6.730769
## 2 94.48052  0.324675  0.324675 0.000000  0.324675 29.67172 4.458599
## 3 82.80543  0.452489  0.452489 0.000000  0.000000 27.68456 5.367232
## 4 91.79487  0.512821  0.000000 0.000000  0.000000 34.27992 3.018868
## 5  0.80000 18.400000 11.200000 2.343750 52.000000 72.96037 6.091371
## 6 94.23077  5.000000  2.307692 0.645161  1.153846 33.79953 4.670913
##   Z_OCUP10  Z_INMI10  Z_NTEN10 AGUA10 CLOAC10 GAS10 NBI10 NBI_H10 NO_VIV10
## 1 67.05069  4.655870 11.158798    231     233   230     0       0        0
## 2 64.74820 10.328068  5.844156    308     302   291     1       1        0
## 3 63.68821  4.582651 19.457014    221     214   183     1       1        0
## 4 58.14480  3.960396  8.717949    195     194   179     1       0        0
## 5 53.16092 19.782609 16.800000    124       9     1    23      14        3
## 6 70.26604 18.192090  6.153846    260     256   245    13       6        2
##   NO_INO10 NO_EDU10 DESOC10 OCUP10 INMIG10 NO_TEN10        X         Y
## 1        0       47      21    291      23       26 99936.02 110549.09
## 2        1      235      21    450      85       18 96644.84 108791.08
## 3        0      165      19    335      28       43 94588.12 103528.61
## 4        0      169       8    257      20       17 94543.42 103408.57
## 5       65      313      12    185      91       21 93800.52 101462.92
## 6        3      290      22    449     161       16 93959.48  98286.84
##                         geometry
## 1 MULTIPOLYGON (((-58.465 -34...
## 2 MULTIPOLYGON (((-58.50017 -...
## 3 MULTIPOLYGON (((-58.52236 -...
## 4 MULTIPOLYGON (((-58.52291 -...
## 5 MULTIPOLYGON (((-58.53089 -...
## 6 MULTIPOLYGON (((-58.52917 -...

Visualizamos los campos del archivo CENSO (se visualizan en cada campo los nombres de las variables mencionadas anteriormente)

names(CENSO)
##  [1] "SUP10"    "DENS10"   "POB10"    "VIV10"    "HOG10"    "HAC_HO10"
##  [7] "Z_AGUA10" "Z_CLOA10" "Z_GAS10"  "Z_NBI10"  "Z_NBIH10" "Z_NVIV10"
## [13] "Z_NINO10" "Z_NEDU10" "Z_DESO10" "Z_OCUP10" "Z_INMI10" "Z_NTEN10"
## [19] "AGUA10"   "CLOAC10"  "GAS10"    "NBI10"    "NBI_H10"  "NO_VIV10"
## [25] "NO_INO10" "NO_EDU10" "DESOC10"  "OCUP10"   "INMIG10"  "NO_TEN10"
## [31] "X"        "Y"        "geometry"

Paso 2: selección de campos

De la tabla de atributos de “CENSO”" realizamos la selección de la variable “NO_VIV10” (Número de hogares con viviendas de calidad deficitaria) mediante el comando “select”:

CENSO_NO_VIV10 <- select(CENSO, NO_VIV10)

Verificamos que haya sido seleccionado de la tabla de atributos el campo que necesitabamos:

names(CENSO_NO_VIV10)
## [1] "NO_VIV10" "geometry"
head(CENSO_NO_VIV10)
## Simple feature collection with 6 features and 1 field
## geometry type:  MULTIPOLYGON
## dimension:      XY
## bbox:           xmin: -58.53092 ymin: -34.64523 xmax: -58.46358 ymax: -34.53388
## epsg (SRID):    4326
## proj4string:    +proj=longlat +datum=WGS84 +no_defs
##   NO_VIV10                       geometry
## 1        0 MULTIPOLYGON (((-58.465 -34...
## 2        0 MULTIPOLYGON (((-58.50017 -...
## 3        0 MULTIPOLYGON (((-58.52236 -...
## 4        0 MULTIPOLYGON (((-58.52291 -...
## 5        3 MULTIPOLYGON (((-58.53089 -...
## 6        2 MULTIPOLYGON (((-58.52917 -...

Paso 3: mapeo de la información

Se realizó, a modo de chequeo visual de la información, el mapeo del número de hogares con viviendas de calidad deficitaria según el censo de 2010.

ggplot() +
  geom_sf(data = CENSO_NO_VIV10, aes(fill=NO_VIV10))

Observamos que el mapeo no fue del todo óptimo para poder ser analizada la información censal; en consecuencia se decidió llevar a cabo una categorización de los datos.

Realizamos un histograma para visualizar la distribución de los datos y luego poder realizar una categorización de los mismos (y en consecuencia un mapeo más óptimo de la información).

ggplot(CENSO_NO_VIV10) + 
    geom_histogram(aes(x = NO_VIV10)) + 
  labs(title = "Histograma")
## `stat_bin()` using `bins = 30`. Pick better value with `binwidth`.

Convertimos la cantidad de hogares con vivienda de calidad deficitaria en una variable categórica (factor) con orden:

CENSO_NO_VIV10 <- CENSO_NO_VIV10 %>% 
  mutate(cantidad_hogares = case_when(
    NO_VIV10 == 0 ~ "ningún hogar",
    NO_VIV10 <= 50  ~ "1 a 50 hogares",
    NO_VIV10 <= 100 ~ "51 a 100 hogares",
    NO_VIV10 <= 150 ~ "101 a 150 hogares",
    NO_VIV10 <= 215 ~ "hasta 215 hogares" ))
CENSO_NO_VIV10 <- CENSO_NO_VIV10 %>% 
  mutate(cantidad_hogares = factor(cantidad_hogares, 
                                   levels = c("ningún hogar", 
                                              "1 a 50 hogares", 
                                              "51 a 100 hogares", 
                                              "101 a 150 hogares",
                                              "hasta 215 hogares"), 
                                   ordered = TRUE))

Luego mapeamos los resultados:

ggplot() +
  geom_sf(data = CENSO_NO_VIV10, aes(fill = cantidad_hogares), color = NA) +
  labs(title = "Distribución de Hogares con viviendas de calidad deficitaria
       (CENSO 2010) en la Ciudad de Buenos Aires")

Parte 3: Análisis de la distribución de las viviendas de material precario (AGIP) en relación a la distribución de hogares con viviendas de calidad deficitaria (Censo 2010)

En esta parte del trabajo se emplearon los siguientes archivos:

  1. mza_vmatp2: archivo espacial generado en la parte 1 del trabajo que contiene la distribución en la ciudad de las viviendas de material precario, según AGIP.

  2. CENSO_NO_VIV10

Paso 1: generación de centroides de polígonos

Se generó el centroide de cada manzana que contenía viviendas de material precario (AGIP). Se empleó el archivo “mza_vmatp2”. De esta manera se obtuvo una distribución de puntos para poder analizar mejor la información de AGIP frente a la del CENSO.

centr_mza_vmatp2 <- st_centroid(mza_vmatp2)
## Warning in st_centroid.sf(mza_vmatp2): st_centroid assumes attributes are
## constant over geometries of x
## Warning in st_centroid.sfc(st_geometry(x), of_largest_polygon =
## of_largest_polygon): st_centroid does not give correct centroids for
## longitude/latitude data
ggplot() +
  geom_sf(data = barrios) +
  geom_sf(data = centr_mza_vmatp2) + 
  labs(title = "Distribución de Viviendas de material precario (AGIP)")