Este documento tiene como objetivo presentar los datos sobre la pobreza monetaria en la población joven del Perú, en el contexto de un ejercicio práctico para la creación de mapas coropléticos en R. Algunos de los códigos utilizados han sido adaptados de la publicación de Ronny M. Condor, cuya fuente se referencia al final de este Markdown. Así mismo, aunmentamos un zoom a la provincia constitucional del Callao para complementar la visualización del mapa.
Es mejor elegir el directorio de trabajo manualmente, por algún motivo el setwd no funcionó. Luego de ello, es importante que todos los archivos del mapa del perú estén en la misma carpta del directorio de trabajo. La carpeta se descarga de GEO GPS PERU.
## Reading layer `DEPARTAMENTOS' from data source
## `C:\Users\gmuno\OneDrive\Escritorio\R_carpeta\DEPARTAMENTOS.shp'
## using driver `ESRI Shapefile'
## Simple feature collection with 25 features and 4 fields
## Geometry type: MULTIPOLYGON
## Dimension: XY
## Bounding box: xmin: -81.32823 ymin: -18.35093 xmax: -68.65228 ymax: -0.03860597
## Geodetic CRS: WGS 84
Una vez tengamos el objeto creado usaremos ggplot para visualizar los mapas del peru a partir de sus limites regionales, pero además veremos la posibilidad de seleccionar regiones específicas. En este caso nos interesa resaltar la provincia constitucional del Callao.
Si bien tenemos los polígonos de las regiones del Perú, también nos interesa normbrarlas. Para ello se crea centroides que permitirán colocar los nombres de cada región.Luego es importante identificar la variable que contiene los nombres, en este caso es “DEPARTAMEN”.
peru_d <- peru_d %>% mutate(centroid = map(geometry, st_centroid), coords = map(centroid,
st_coordinates), coords_x = map_dbl(coords, 1), coords_y = map_dbl(coords,
2))
#Mapa con etiquetas de departamentos
ggplot(data = peru_d) +
geom_sf(fill = "#D4B483", color = "#4A3F35") + # Relleno beige y bordes marrones
geom_text_repel(mapping = aes(coords_x, coords_y, label = DEPARTAMEN),
size = 2.25, color = "#3B3B3B") + # Texto gris oscuro
theme_minimal() + # Tema minimalista para un aspecto limpio
theme(panel.background = element_rect(fill = "#F3E9D2", color = NA), # Fondo beige claro
plot.background = element_rect(fill = "#F3E9D2"), # Fondo beige claro
panel.grid = element_blank()) # Eliminar líneas de la cuadrículaAhora bien, cargamos nuestra tabla de datos sobre pobreza en jóvenes del Perú. Recordemos que la pobreza nacional en el Perú para 2023 es del 29%, mientras que para la desagregación de jóvenes (15 a 29 años según la Política Nacional de Juventud del Perú) es del 28% (27.6%). La tabla lo podrán encontrar en el siguiente enlace: https://1drv.ms/x/c/21ea49797843d131/EVjd8LSMFv5PlQQYu7INsegB-0YvjlpYwdlTFzzoDOUV2w?e=Dr7Jug. Vale decir que el cálculo de la pobreza se realizó siguiente la metodología del INEI que en una próxima publicación lo explicaremos a detalle.
#choose.files()
pobreza <- read_excel("C:\\Users\\gmuno\\OneDrive\\Escritorio\\R_carpeta\\Pobreza_joven.xlsx")
#view(pobreza)Al haber construido el mapa como un data frame la idea ahora es hacer un merge entre ambos dataframes (tabla de datos). En este caso hay que identificar la variable “llave” que nos permitirá hacer la equivalencia directa entre los polígonos de las regiones y el dato de pobreza, en este caso será “OBJECTID”.
Realizamos un ggplot con las siguientes características para mostrar cómo se resuelve la visualización de los datos. Como se puede apreciar la escala nos está mostrando que mientras el índice se acerca más a 1 la intensidad del color es más tenue. Sin embargo, lo que se desea es que sea al revés, que a mayor índice de pobreza mayor intensidad de color, esta cuestión lo arreglaremos en el siguiente código.
ggplot(peru_datos) +
geom_sf(aes(fill = IND)) +
labs(
title = "Porcentaje de población joven pobre por departamento (2023)",
caption = "Fuente: Enaho (2023)\nElaboración propia", # Se cierra correctamente la cadena
x = "Longitud",
y = "Latitud"
) +
scale_fill_continuous(name = "Incidencia de la pobreza") # Cambié guide_legend por name, ya que scale_fill_continuous no usa guide_legend directamenteComo bien se mencionó anteriormente, ahora queremos que la escala tenga una orientación distinta, que a mayor índice de pobreza la intensidad del color sea mayor. Para ello agregamos un código adicional en scale_fill_continuous: ’trans=“reverse”.
ggplot(peru_datos) +
geom_sf(aes(fill = IND)) +
labs(
title = "Porcentaje de población joven pobre por departamento (2023)",
caption = "Fuente: Enaho (2023)\nElaboración propia",
x = "Longitud",
y = "Latitud"
) +
scale_fill_continuous(name = "Incidencia de la pobreza", trans = "reverse") + # Invertir la escala de colores
geom_text_repel(aes(x = coords_x, y = coords_y, label = DEPARTAMEN.x), size = 2.25)Ahora bien, como bien se aprecia, la provincia constitucional del Callao no se logra identificar del todo para ello vamos a realizar un zoom con los siguientes código, posteriormente vamos a ubicarlo donde mejor sea apreciado jugando un poco con annotation_custom::xmin
# Filtrar solo los datos del Callao
callao_datos <- peru_datos %>% filter(DEPARTAMEN.x == "CALLAO")
# Mapa principal
mapa_principal <- ggplot(peru_datos) +
geom_sf(aes(fill = IND)) +
labs(
title = "Porcentaje de población joven pobre por departamento (2023)",
caption = "Fuente: Enaho (2023)\nElaboración propia",
x = "Longitud",
y = "Latitud"
) +
scale_fill_continuous(name = "Incidencia de la pobreza", trans = "reverse") +
geom_text_repel(aes(x = coords_x, y = coords_y, label = DEPARTAMEN.x), size = 2.25)
# Mapa de zoom para el Callao
mapa_zoom <- ggplot(callao_datos) +
geom_sf(aes(fill = IND)) +
geom_text_repel(aes(x = coords_x, y = coords_y, label = DEPARTAMEN.x), size = 2.25) +
scale_fill_continuous(name = "Incidencia de la pobreza") +
theme_void() + # Sin ejes ni leyendas
theme(legend.position = "none") # Sin leyenda en el zoom
# Convertir el mapa de zoom en un grob (gráfico incrustado)
grob_zoom <- ggplotGrob(mapa_zoom)
# Insertar el zoom en el mapa principal
mapa_final <- mapa_principal +
annotation_custom(grob_zoom, xmin = -84, xmax = -72, ymin = -18, ymax = -12) # Ajustar las coordenadas según donde quieras que aparezca el zoom
# Mostrar el mapa final
mapa_finalLos datos de pobreza en la población joven a nivel regional reflejan la tendencia general de la pobreza nacional. Destacan las regiones de Cajamarca, Puno y Loreto como las que presentan los índices más altos de pobreza juvenil. En contraste, como es habitual, Ica es la región con el menor nivel de pobreza. Sin embargo, es importante tener en cuenta las desagregaciones nacionales, que aunque no se detallan aquí, se pueden consultar en la imagen adjunta en este trabajo. La pobreza es especialmente alta en el grupo etario de 15 a 19 años y afecta de manera más severa a mujeres que viven en áreas rurales.