Si esta publicación te resulta útil, te agradecería que hicieras una pequeña donación en Buy Me a Coffee. La utilizaré para continuar con mis iniciativas de código abierto.
Puedes enviarme preguntas para el blog utilizando este formulario y suscribirse para recibir un correo electrónico cuando haya una nueva publicación.
Luego de corregir los códigos territoriales en los datos del Censo 2024 (https://github.com/pachadotdev/censo2024-duckdb), ahora procedo a mostrar algunos mapas interactivos utilizando “d3po”. El código para procesar las tablas censales y generar los estadísticos se encuentra en: https://github.com/pachadotdev/blog-materials/tree/main/2025/12/08/censo2024-mapas.
Personas por comuna
Resultados de la Región Metropolitana:
if (!require("sf")) install.packages("sf")
if (!require("dplyr")) install.packages("dplyr")
if (!require("chilemapas")) install.packages("chilemapas")
if (!require("d3po")) install.packages("d3po")
library(sf)
library(dplyr)
library(chilemapas)
library(d3po)
# datos pre-procesados
personas_por_comuna <- readRDS("~/Documents/blog-materials/2025/12/08/censo2024-mapas/personas_por_comuna.rds")
personas_por_comuna
# A tibble: 346 × 3
comuna n_personas territorio
<chr> <dbl> <chr>
1 01101 199587 Iquique
2 01107 142086 Alto Hospicio
3 01401 16878 Pozo Almonte
4 01402 1335 Camiña
5 01403 790 Colchane
6 01404 2858 Huara
7 01405 6272 Pica
8 02101 401096 Antofagasta
9 02102 14084 Mejillones
10 02103 1472 Sierra Gorda
# ℹ 336 more rows
# mapa includo en el paquete chilemapas
mapa_comunas
# A tibble: 345 × 4
codigo_comuna codigo_provincia codigo_region geometry
<chr> <chr> <chr> <MULTIPOLYGON [°]>
1 01401 014 01 (((-68.86081 -21.28512, -68.921…
2 01403 014 01 (((-68.65113 -19.77188, -68.811…
3 01405 014 01 (((-68.65113 -19.77188, -68.635…
4 01402 014 01 (((-69.31789 -19.13651, -69.271…
5 01404 014 01 (((-69.39615 -19.06125, -69.400…
6 01107 011 01 (((-70.1095 -20.35131, -70.1243…
7 01101 011 01 (((-70.09894 -20.08504, -70.102…
8 02104 021 02 (((-68.98863 -25.38016, -68.987…
9 02101 021 02 (((-70.60654 -23.43054, -70.601…
10 02201 022 02 (((-67.94302 -22.38175, -67.955…
# ℹ 335 more rows
# como el mapa ya esta en sf, funciona directamente con d3po
# falta unir con la tabla de personas_por_comuna
mapa1 <- personas_por_comuna |>
filter(substr(comuna, 1, 2) == "13") |>
inner_join(mapa_comunas, by = c("comuna" = "codigo_comuna")) |>
st_as_sf() # asegurarse que es un sf
gradiente <- tintin::tintin_clrs()[2:1]
d3po(mapa1, width = 800, height = 600) %>%
po_geomap(daes(group = territorio, size = n_personas, color = gradiente, gradient = T, tooltip = territorio)) %>%
po_labels(
title = "Población total por comuna - Región Metropolitana",
subtitle = "Fuente: Basado en Microdatos Censo 2024 de Población y Viviendas de Chile"
)
En el mapa se observa que Santiago, Maipú y Puente Alto son las comunas con mayor población en la Región Metropolitana. Las tres comunas están en el mismo orden de magnitud, valores cercanos a 500,000 habitantes cada una, con la distinción de que Santiago tiene una densidad poblacional mucho mayor debido a su menor superficie.
Índice de hacinamiento por comuna
Con la variable “p5_num_dormitorios” se puede seguir la metodología del Ministerio de Desarrollo Social, que consiste en tomar la razón entre el número de personas residentes en la vivienda y el número de dormitorios de la misma y luego se tramifica la variable en las siguientes categorías:
- Sin hacinamiento [0;2,5)
- Medio [2,5;3,5)
- Alto [3,5;4,9)
- Crítico [5,+∞)
Resultados de la Región Metropolitana:
hacinamiento_por_comuna <- readRDS("~/Documents/blog-materials/2025/12/08/censo2024-mapas/hacinamiento_por_comuna.rds")
mapa2 <- hacinamiento_por_comuna |>
filter(substr(comuna, 1, 2) == "13") |>
inner_join(mapa_comunas, by = c("comuna" = "codigo_comuna")) |>
st_as_sf() # asegurarse que es un sf
d3po(filter(mapa2, categoria_hacinamiento == "Sin hacinamiento"), width = 800, height = 600) %>%
po_geomap(daes(group = territorio, size = p_viviendas, color = gradiente, gradient = T, tooltip = territorio)) %>%
po_labels(
title = "Porcentaje de viviendas sin hacinamiento por comuna - Región Metropolitana",
subtitle = "Fuente: Basado en Microdatos Censo 2024 de Población y Viviendas de Chile"
)
d3po(filter(mapa2, categoria_hacinamiento == "Medio"), width = 800, height = 600) %>%
po_geomap(daes(group = territorio, size = p_viviendas, color = gradiente, gradient = T, tooltip = territorio)) %>%
po_labels(
title = "Porcentaje de viviendas con hacinamiento medio por comuna - Región Metropolitana",
subtitle = "Fuente: Basado en Microdatos Censo 2024 de Población y Viviendas de Chile"
)
d3po(filter(mapa2, categoria_hacinamiento == "Alto"), width = 800, height = 600) %>%
po_geomap(daes(group = territorio, size = p_viviendas, color = gradiente, gradient = T, tooltip = territorio)) %>%
po_labels(
title = "Porcentaje de viviendas con hacinamiento alto por comuna - Región Metropolitana",
subtitle = "Fuente: Basado en Microdatos Censo 2024 de Población y Viviendas de Chile"
)
d3po(filter(mapa2, categoria_hacinamiento == "Crítico"), width = 800, height = 600) %>%
po_geomap(daes(group = territorio, size = p_viviendas, color = gradiente, gradient = T, tooltip = territorio)) %>%
po_labels(
title = "Porcentaje de viviendas con hacinamiento crítico por comuna - Región Metropolitana",
subtitle = "Fuente: Basado en Microdatos Censo 2024 de Población y Viviendas de Chile"
)
Primer mapa: 85% de las comunas no tiene hacinamiento.
Segundo, tercer y cuarto mapa: Comunas como Estación Central tienen en torno a un 15% de sus viviendas con hacinamiento medio a crítico.
Se puede realizar un ejercicio similar a nivel sub-comunal procesando la cartografía censal. Para quienes se interesen en realizar dicho análisis, el año 2017 hice algo similar a nivel de geocódigo: https://ropensci.org/es/blog/2021/07/27/censo2017-es/.