Día Mundial de la Población: crea mapas provinciales del Perú con R usando los datos oficiales del Censo 2025

Visualizando la población provincial de las 26 regiones del Perú con datos del INEI

By Denis Rodríguez in SIG R Días Internacionales

July 11, 2026

INTRODUCCIÓN

Cada 11 de julio se conmemora el Día Mundial de la Población, una fecha promovida por las Naciones Unidas para reflexionar sobre las tendencias demográficas y la importancia de contar con información estadística de calidad para el diseño de políticas públicas.

En este contexto, el Instituto Nacional de Estadística e Informática (INEI) publicó recientemente los resultados del XIII Censo de Población, VIII de Vivienda y IV de Comunidades Indígenas (2025), proporcionando información actualizada sobre la población peruana a diferentes niveles territoriales.

Los mapas constituyen una de las mejores herramientas para comunicar este tipo de información. En pocos segundos permiten identificar patrones espaciales que, en una tabla de datos, podrían pasar desapercibidos.

En este tutorial aprenderás a construir un mapa coroplético de la población provincial utilizando en R, empleando los datos oficiales del Censo Nacional 2025. El mismo código puede reutilizarse para cualquiera de las 25 regiones del Perú, modificando únicamente el nombre del departamento.

Al finalizar tendrás un mapa similar al siguiente:

  • Cada provincia estará coloreada según su población.
  • El color plomo indica una mayo concentración de Población
  • Las etiquetas mostrarán el nombre de la provincia y su población total.
  • El mapa estará listo para publicarse en redes sociales o incorporarse en un informe técnico o en presentaciones.

POBLACIÓN DE LAS PROVINCIAS DE AMAZONAS

El mapa permite identificar rápidamente que Utcubamba y Bagua concentran la mayor población del departamento de Amazonas, con más de 90 mil habitantes.

Áncash

POBLACIÓN DE LAS PROVINCIAS DE ÁNCASH

Apurímac

POBLACIÓN DE LAS PROVINCIAS DE APURÍMAC

Arequipa

POBLACIÓN DE LAS PROVINCIAS DE AREQUIPA

Ayacucho

POBLACIÓN DE LAS PROVINCIAS DE AYACUCHO

Cajamarca

POBLACIÓN DE LAS PROVINCIAS DE CAJAMARCA

Callao

POBLACIÓN DE LA REGIÓN CALLAO

Cusco

POBLACIÓN DE LAS PROVINCIAS DE CUSCO

Huancavelica

POBLACIÓN DE LAS PROVINCIAS DE HUANCAVELICA

Huánuco

POBLACIÓN DE LAS PROVINCIAS DE HUÁNUCO

Ica

POBLACIÓN DE LAS PROVINCIAS DE ICA

Junín

POBLACIÓN DE LAS PROVINCIAS DE JUNÍN

La Libertad

POBLACIÓN DE LAS PROVINCIAS DE LA LIBERTAD

Lambayeque

POBLACIÓN DE LAS PROVINCIAS DE LAMBAYEQUE

Lima Metropolitana

POBLACIÓN DE LIMA METROPOLITANA

Loreto

POBLACIÓN DE LAS PROVINCIAS DE LORETO

Madre de Dios

POBLACIÓN DE LAS PROVINCIAS DE MADRE DE DIOS

Moquegua

POBLACIÓN DE LAS PROVINCIAS DE MOQUEGUA

Pasco

POBLACIÓN DE LAS PROVINCIAS DE PASCO

Piura

POBLACIÓN DE LAS PROVINCIAS DE PIURA

Puno

POBLACIÓN DE LAS PROVINCIAS DE PUNO

Región Lima

POBLACIÓN DE LAS PROVINCIAS DE LA REGIÓN LIMA

San Martín

POBLACIÓN DE LAS PROVINCIAS DE SAN MARTÍN

Tacna

POBLACIÓN DE LAS PROVINCIAS DE TACNA

Tumbes

POBLACIÓN DE LAS PROVINCIAS DE TUMBES

Ucayali

POBLACIÓN DE LAS PROVINCIAS DE UCAYALI

COSTRUIR LOS MAPAS

Datos utilizados

Para este ejercicio se emplean dos fuentes de información:

Posteriormente ambas fuentes se integran mediante el código único de provincia (IDPROV) que es el ubigeo provincial.

Descarga todos los mapas aquí.


1. Cargar las librerías

Comenzamos cargando las librerías necesarias.

library(tidyverse)
library(openxlsx)
library(viridis)
library(sf)
library(ggspatial)
library(ggrepel)
library(grid, quietly = TRUE)
library(gridExtra, quietly = TRUE)
library(giscoR, quietly = TRUE)
library(classInt, quietly = TRUE)
library(sp)
library(extrafont)
library(rcartocolor)
library(scales)

2. Leer la cartografía y la base de datos

Cargamos el shapefile de provincias y la tabla con la población del Censo Nacional 2025.

shp_provincias <- st_read(
  "Data/SHP PERU/PROVINCIAS/PROVINCIAS_inei_geogpsperu_suyopomalia.shp"
)

poblacion25 <- read.xlsx(
  "data/Población_Proyectada_2025_cpv.xlsx"
)

3. Uniendo la información

Ahora unimos ambas fuentes mediante el identificador de provincia IDPROV.

shp_provincia_pob_cpv <-
  shp_provincias %>%
  left_join(
    poblacion25,
    by = c("IDPROV" = "ID_PROV")
  )

El nuevo objeto espacial contiene tanto la geometría como la población provincial total registrada en el Censo Nacional 2025.


4. Definir una paleta de colores

Para representar la población utilizaremos una escala continua personalizada. El color gris indica una mayor conetración de población.

colores_personalizados <- c(
  "#ffffcc",
  "#a1dab4",
  "#41b6c4",
  "#9aacb8",
  "#727794"
)

Puedes modificar esta paleta por cualquier otra que se adapte a la identidad visual de tu proyecto.


5. Construir el mapa

En este ejemplo elaboraremos el mapa para el departamento de Amazonas.

shp_provincia_pob_cpv |>
  filter(NOMBDEP == "AMAZONAS") |>
  ggplot() +

  geom_sf(
    aes(fill = POBLACION.TOTAL.2025),
    color = "white",
    size = .3
  ) +

  scale_fill_gradientn(
    name = "Población Total 2025",
    colors = colores_personalizados,
    labels = label_comma()
  ) +

  geom_sf_text(
    aes(
      label = paste(
        NOMBPROV,
        "\n",
        comma(POBLACION.TOTAL.2025)
      )
    ),
    size = 4,
    color = "black",
    fontface = "bold",
    check_overlap = FALSE
  ) +

  labs(
    title = "PROVINCIAS DE AMAZONAS: POBLACIÓN TOTAL 2025",
    caption = "Fuente: INEI - Censos Nacionales 2025\nElaboración: www.denis-rodriguez.com",
    x = ""
  ) +

  theme(
    panel.background = element_blank(),
    legend.background = element_blank(),
    panel.border = element_blank(),
    panel.grid.minor = element_blank(),
    panel.grid.major = element_blank(),

    plot.title = element_text(
      size = 12,
      colour = "#05204d",
      hjust = .5,
      face = "bold"
    ),

    plot.caption = element_text(
      size = 10,
      colour = "grey60"
    ),

    legend.text = element_text(size = 10),
    legend.title = element_text(size = 10),

    axis.title.y = element_blank(),
    axis.ticks = element_blank(),
    axis.text.x = element_blank(),
    axis.text.y = element_blank()
  )

El resultado será un mapa donde el color representa la población provincial y las etiquetas muestran el nombre de cada provincia junto con su población.


6. Exportar el mapa

Para guardar el resultado en alta resolución utilizamos ggsave().

ggsave(
  "imagenes/CPV_2025/amazonas.png",
  width = 10,
  height = 13,
  dpi = 320,
  units = "in"
)

Estas dimensiones producen una imagen con excelente calidad para publicaciones impresas y redes sociales.


7. ¿Cómo generar el mapa de cualquier región?

Una de las ventajas de este flujo de trabajo es que el código es completamente reutilizable.

Solo debes modificar el filtro correspondiente al departamento.

Por ejemplo:

filter(NOMBDEP == "CUSCO")
filter(NOMBDEP == "PIURA")

El resto del código permanece exactamente igual.


8. Personaliza el tamaño de exportación

Cada departamento posee una forma distinta.

Por ello, puedes modificar las dimensiones del archivo exportado según tus necesidades.

Formato Resolución
Instagram (4:5) 1080 × 1350 px
Cuadrado 1080 × 1080 px
Stories 1080 × 1920 px

Conclusión

Los datos abiertos del Censo Nacional 2025 constituyen una valiosa fuente de información para analizar la distribución de la población a nivel provincial.

Con unas pocas líneas de código en R es posible construir mapas temáticos claros, reproducibles y listos para ser utilizados en investigaciones, informes o publicaciones digitales o presetaciones.

Este mismo procedimiento puede emplearse para generar mapas de cualquiera de las 25 regiones del Perú, facilitando la elaboración de atlas estadísticos o visualizaciones para redes sociales.

Espero que este tutorial sea de utilidad para investigadores, estudiantes, periodistas de datos y cualquier persona interesada en la cartografía temática y la visualización de datos con R.


Fuente de datos

Instituto Nacional de Estadística e Informática (INEI).

XIII Censo de Población, VIII de Vivienda y IV de Comunidades Indígenas (2025).

https://censos2025.inei.gob.pe/resultados/poblacion-total/comparativo-territorial


Si este contenido te fue útil,
puedes apoyarme con un café ☕. Es una forma sencilla de ayudarme a seguir creando y compartiendo conocimiento.
Posted on:
July 11, 2026
Length:
6 minute read, 1129 words
Categories:
SIG R Días Internacionales
See Also: