6.3 Mapas
Los mapas son una herramienta gráfica poderosa para la visualización de datos. Particularmente, para indicadores socio-demográficos, estos proporcionan una referencia visual para desagregaciones de interés como región, departamento, provincia, distrito, municipio, comuna, etc. R
posee un sin fin de métodos de programación para representar mapas.
En una primera instacia, para realizar mapas es necesario contar con un tipo especial de información geoespacial; esto es, datos que contienen las coordenadas o delimitaciones geográficas de determinado país o región. Sitios web como http://www.diva-gis.org/gdata ofrecen de manera gratuita bases de datos geoespaciales que contienen los vectores asociados a las geografías correspondientes. El formato de este tipo de datos se conoce como shapefile y continene observaciones sobre la longitud y latitud, que permiten localizar un conjunto de puntos cuya unión en el gráfico formarán las formas de los polígonos que definen las áreas geográficas.
Entre las distintas librería para realizar mapas en R
están tmap
y ggplot2
. A continuación, se ilustra cómo se generan mapas, inicalmente con la librería tmap
. Inicialmente, para realizar el mapa hay que contar con el archivo de shapefile el cual se carga de la siguiente manera.
Una vez cargado el shapefile, el mapa se genera usando las funciones tm_shape
y la información que se desea graficar en el mapa se incluye con la función tm_polygons.
Para este ejemplo inicial, solo se visualizarán las regiones en el mapa:
A modo de otro ejemplo, suponga que se desea visualizar la estimación de los ingresos medios a nivel de región. En primer lugar se debe obtener la tabla de estimaciones.
prom_region <- svyby(~Income, ~Region, diseno,
svymean,
na.rm = T, covmat = TRUE,
vartype = c("cv"))
prom_region
Region | Income | cv | |
---|---|---|---|
Norte | Norte | 552.4 | 0.1002 |
Sur | Sur | 625.8 | 0.0997 |
Centro | Centro | 650.8 | 0.0945 |
Occidente | Occidente | 517.0 | 0.0894 |
Oriente | Oriente | 541.8 | 0.1323 |
El siguiente código representa áreas geográficas coloreadas según la estimación del promedio de la variable Income
. El comando brks
crea un vector que especifica los puntos de corte para clasificar los valores de la estimación en rangos. En este caso, hay tres rangos: [0, 550), [550, 600), [600, 1000]. Estos rangos se utilizarán para asignar colores a las áreas geográficas en el mapa. Luego, se crea un objeto tm_shape
que contiene la información geométrica y de atributos de las áreas geográficas. También se realiza una operación de left_join
para unir la información adicional de contenida en el dataframe prom_region
al dataframe shapeBigCity
.
brks <- c(0, 550, 600, 1000)
shape_temp <- tm_shape(shapeBigCity %>%
left_join(prom_region,
by = "Region"))
shape_temp + tm_polygons("Income",
breaks = brks,
title = "Income",) + tm_layout(asp = 0)
Ahora, es posible realizar el mismo ejercicio anterior pero con la estimacion de la proporción de personas en condición de pobreza por zona y sexo. El código computacional apropiado se muestra a continuación.
pob_region_Sex <- diseno %>%
group_by(Region, Zone, Sex, pobreza) %>%
summarise(prop = survey_mean(vartype = "cv")) %>%
filter(pobreza == 1, Zone == "Rural", Sex == "Female")
shape_temp <- tm_shape(shapeBigCity %>%
left_join(pob_region_Sex,
by = "Region"))
shape_temp + tm_polygons("prop",
title = "Pobreza",) + tm_layout(asp = 0)