Mapa y ficha de caracterización comunal

Laboratorio aplicado para póster de remuneraciones municipales

Análisis de Datos I

2026-05-27

Objetivo del laboratorio

En este laboratorio construiremos una ficha de caracterización comunal para incorporar en el póster final del curso.

La ficha combinará:

  • un mapa de ubicación comunal
  • información territorial básica
  • indicadores sociales
  • información política local
  • diseño visual exportable como imagen.

¿Por qué hacer una ficha comunal?

El análisis de remuneraciones municipales no debe presentarse aislado.

Una comuna con alta ruralidad, mayor pobreza o fuerte dependencia del Fondo Común Municipal puede tener condiciones institucionales distintas a una comuna urbana, con mayor presupuesto o más capacidad administrativa.

Por eso, antes de analizar las remuneraciones, necesitamos responder:

¿Qué tipo de comuna estamos analizando?

Producto esperado del laboratorio

Al finalizar, cada grupo debe construir una imagen que combine:

  1. Un mapa de ubicación de la comuna.
  2. Una ficha de caracterización territorial.
  3. Un diseño limpio y legible para póster.

La imagen final podrá ser incorporada directamente en el póster.

Flujo general de trabajo

Durante el laboratorio seguiremos estos pasos:

  1. Cargar paquetes.
  2. Cargar el mapa comunal de Chile.
  3. Filtrar una región.
  4. Filtrar una comuna.
  5. Construir diferentes versiones del mapa.
  6. Crear una ficha territorial.
  7. Combinar mapa + ficha.
  8. Exportar la imagen final.

Paquetes necesarios

library(chilemapas)
library(dplyr)
library(ggplot2)
library(sf)
library(patchwork)
library(grid)
library(ggtext)

Nota

Los paquetes se instalan una sola vez en el computador.

En el script final no conviene dejar líneas como install.packages(), porque pueden generar errores al ejecutar el código en otro equipo.

Si falta instalar paquetes

Si algún paquete no está instalado, se puede ejecutar una sola vez en la consola:

install.packages("dplyr")
install.packages("ggplot2")
install.packages("sf")
install.packages("patchwork")
install.packages("ggtext")
install.packages("chilemapas")

Luego se cargan con library().

library(dplyr)
library(ggplot2)
library(sf)
library(patchwork)
library(ggtext)
library(grid)
library(chilemapas)

Cargar mapa comunal

Primero cargamos el mapa comunal disponible en el paquete chilemapas.

mapa_comunas <- chilemapas::mapa_comunas

Luego lo convertimos en un objeto espacial sf.

mapa_comunas_sf <- st_as_sf(mapa_comunas)

Revisar la estructura del mapa

Antes de filtrar, siempre conviene mirar los nombres de las columnas.

names(mapa_comunas_sf)
[1] "codigo_comuna"    "codigo_provincia" "codigo_region"    "geometry"        

También podemos revisar las primeras observaciones.

head(mapa_comunas_sf)
Simple feature collection with 6 features and 3 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -70.28665 ymin: -21.63061 xmax: -68.40454 ymax: -18.9369
Geodetic CRS:  SIRGAS 2000
# A tibble: 6 × 4
  codigo_comuna codigo_provincia codigo_region                          geometry
  <chr>         <chr>            <chr>                        <MULTIPOLYGON [°]>
1 01401         014              01            (((-68.86081 -21.28512, -68.9217…
2 01403         014              01            (((-68.65113 -19.77188, -68.8118…
3 01405         014              01            (((-68.65113 -19.77188, -68.6354…
4 01402         014              01            (((-69.31789 -19.13651, -69.2717…
5 01404         014              01            (((-69.39615 -19.06125, -69.4002…
6 01107         011              01            (((-70.1095 -20.35131, -70.12438…

¿Qué necesitamos identificar?

Para construir el mapa comunal necesitamos ubicar dos códigos:

  • codigo_region
  • codigo_comuna

En nuestro ejemplo trabajaremos con:

Territorio Código
Región de La Araucanía 09
Comuna de Vilcún 09119

Filtrar Región de La Araucanía

araucania <- mapa_comunas_sf |>
  filter(codigo_region == "09")

Revisamos cuántas comunas quedaron en la región:

nrow(araucania)
[1] 32

Filtrar comuna de Vilcún

vilcun <- araucania |>
  filter(codigo_comuna == "09119")

Verificamos que el filtro haya funcionado:

vilcun
Simple feature collection with 1 feature and 3 fields
Geometry type: MULTIPOLYGON
Dimension:     XY
Bounding box:  xmin: -72.52025 ymin: -38.85563 xmax: -71.68207 ymax: -38.55588
Geodetic CRS:  SIRGAS 2000
# A tibble: 1 × 4
  codigo_comuna codigo_provincia codigo_region                          geometry
* <chr>         <chr>            <chr>                        <MULTIPOLYGON [°]>
1 09119         091              09            (((-71.85229 -38.56999, -71.8396…

Mapa 1: versión básica

Esta es la versión más simple del mapa.

Sirve para verificar que el filtro funcionó correctamente.

ggplot() +
  geom_sf(data = araucania) +
  geom_sf(data = vilcun)

Mapa 2: región en gris y comuna destacada

mapa_vilcun_basico <- ggplot() +
  geom_sf(
    data = araucania,
    fill = "grey90",
    color = "white"
  ) +
  geom_sf(
    data = vilcun,
    fill = "#F2B705",
    color = "#003A70",
    linewidth = 0.7
  ) +
  theme_void()

mapa_vilcun_basico

Mapa 2: región en gris y comuna destacada

Mapa 3: con título, subtítulo y fuente

mapa_vilcun <- ggplot() +
  geom_sf(
    data = araucania,
    fill = "grey90",
    color = "white",
    linewidth = 0.25
  ) +
  geom_sf(
    data = vilcun,
    fill = "#F2B705",
    color = "#003A70",
    linewidth = 0.7
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(size = 8, hjust = 0),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun

Mapa 3: con título, subtítulo y fuente

Personalizar colores

Podemos modificar los colores del mapa cambiando los valores de fill y color.

fill = "#F2B705"
color = "#003A70"

El argumento fill cambia el color del área.

El argumento color cambia el borde.

Paleta institucional sugerida

Una alternativa es trabajar con una paleta institucional.

azul_uct <- "#003A70"
amarillo_uct <- "#F2B705"
gris_claro <- "grey90"
gris_texto <- "grey20"

Luego usamos esos objetos en el gráfico.

Mapa con colores institucionales

mapa_vilcun_colores <- ggplot() +
  geom_sf(
    data = araucania,
    fill = gris_claro,
    color = "white",
    linewidth = 0.25
  ) +
  geom_sf(
    data = vilcun,
    fill = amarillo_uct,
    color = azul_uct,
    linewidth = 0.8
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15, color = azul_uct),
    plot.subtitle = element_text(size = 11, color = gris_texto),
    plot.caption = element_text(size = 8, hjust = 0, color = "grey40"),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun_colores

Mapa con colores institucionales

Mapa 4: versión más sobria

Esta versión usa colores más neutros.

Puede servir para pósters donde el mapa no debe competir visualmente con los gráficos principales.

mapa_vilcun_sobrio <- ggplot() +
  geom_sf(
    data = araucania,
    fill = "grey92",
    color = "grey75",
    linewidth = 0.2
  ) +
  geom_sf(
    data = vilcun,
    fill = "grey35",
    color = "black",
    linewidth = 0.8
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(size = 8, hjust = 0),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun_sobrio

Mapa 5: con borde regional más visible

A veces conviene destacar más el contorno regional.

mapa_vilcun_borde <- ggplot() +
  geom_sf(
    data = araucania,
    fill = "grey94",
    color = "grey60",
    linewidth = 0.25
  ) +
  geom_sf(
    data = vilcun,
    fill = "#F2B705",
    color = "#003A70",
    linewidth = 1
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(size = 8, hjust = 0),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun_borde

Mapa 5: con borde regional más visible

A veces conviene destacar más el contorno regional.

Mapa 6: con etiqueta de la comuna

También podemos agregar una etiqueta sobre la comuna.

Primero obtenemos un punto central de la comuna.

punto_vilcun <- st_point_on_surface(vilcun)

Luego agregamos el texto con geom_sf_text().

Mapa con etiqueta

mapa_vilcun_etiqueta <- ggplot() +
  geom_sf(
    data = araucania,
    fill = "grey90",
    color = "white",
    linewidth = 0.25
  ) +
  geom_sf(
    data = vilcun,
    fill = "#F2B705",
    color = "#003A70",
    linewidth = 0.8
  ) +
  geom_sf_text(
    data = punto_vilcun,
    aes(label = "Vilcún"),
    size = 4,
    fontface = "bold",
    color = "#003A70"
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(size = 8, hjust = 0),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun_etiqueta

Mapa con etiqueta

Mapa 7: usando solo contornos

Otra forma es dejar la región sin relleno y destacar solo la comuna.

mapa_vilcun_contorno <- ggplot() +
  geom_sf(
    data = araucania,
    fill = NA,
    color = "grey60",
    linewidth = 0.3
  ) +
  geom_sf(
    data = vilcun,
    fill = "#F2B705",
    color = "#003A70",
    linewidth = 0.9
  ) +
  labs(
    title = "Ubicación de Vilcún",
    subtitle = "Región de La Araucanía",
    caption = "Fuente: elaboración propia con paquete chilemapas."
  ) +
  theme_void(base_size = 11) +
  theme(
    plot.title = element_text(face = "bold", size = 15),
    plot.subtitle = element_text(size = 11),
    plot.caption = element_text(size = 8, hjust = 0),
    plot.margin = margin(10, 10, 10, 10)
  )

mapa_vilcun_contorno

Mapa 7: usando solo contornos

Otra forma es dejar la región sin relleno y destacar solo la comuna.

Construir la ficha territorial

Ahora construiremos una ficha con información básica de la comuna.

En el ejemplo usaremos Vilcún.

texto_ficha <- "
<span style='font-size:16pt'><b>Contexto comunal: Vilcún</b></span><br><br>

<b>Región:</b> La Araucanía<br>
<b>Provincia:</b> Cautín<br>
<b>Población:</b> 32.742 habitantes<br>
<b>Superficie:</b> 1.421 km²<br>
<b>Ruralidad:</b> 39,7%<br>
<b>Pobreza por ingresos:</b> 11,7%<br>
<b>Pobreza multidimensional:</b> 22,7%<br>
<b>Dependencia FCM:</b> cercana al 76%<br><br>

<b>Alcaldesa:</b> Katherinne Migueles Muñoz<br>
<b>Tendencia política:</b> RN / Chile Vamos<br>
<b>Cambio político reciente:</b> No
"

Convertir la ficha en gráfico

Usaremos ggtext::richtext, que permite incorporar negritas, saltos de línea y tamaños diferenciados.

ficha_vilcun <- ggplot() +
  annotate(
    "richtext",
    x = 0,
    y = 1,
    label = texto_ficha,
    hjust = 0,
    vjust = 1,
    size = 4.1,
    fill = "white",
    color = "grey20",
    label.color = NA,
    lineheight = 1.25
  ) +
  xlim(0, 1) +
  ylim(0, 1) +
  theme_void() +
  theme(
    plot.margin = margin(10, 10, 10, 10)
  )

ficha_vilcun

Convertir la ficha en gráfico

Usaremos ggtext::richtext, que permite incorporar negritas, saltos de línea y tamaños diferenciados.

Ficha con borde

Podemos agregar un borde suave para que la ficha parezca una tarjeta.

ficha_vilcun_borde <- ggplot() +
  annotate(
    "richtext",
    x = 0,
    y = 1,
    label = texto_ficha,
    hjust = 0,
    vjust = 1,
    size = 4.1,
    fill = "white",
    color = "grey20",
    label.color = "grey75",
    label.size = 0.4,
    lineheight = 1.25,
    r = unit(0.15, "lines")
  ) +
  xlim(0, 1) +
  ylim(0, 1) +
  theme_void() +
  theme(
    plot.margin = margin(10, 10, 10, 10)
  )

ficha_vilcun_borde

Ficha con borde

Podemos agregar un borde suave para que la ficha parezca una tarjeta.

Ficha con color de fondo

También podemos usar un fondo más suave.

ficha_vilcun_color <- ggplot() +
  annotate(
    "richtext",
    x = 0,
    y = 1,
    label = texto_ficha,
    hjust = 0,
    vjust = 1,
    size = 4.1,
    fill = "#F7F9FB",
    color = "grey20",
    label.color = "#003A70",
    label.size = 0.5,
    lineheight = 1.25,
    r = unit(0.15, "lines")
  ) +
  xlim(0, 1) +
  ylim(0, 1) +
  theme_void() +
  theme(
    plot.margin = margin(10, 10, 10, 10)
  )

ficha_vilcun_color

Ficha con color de fondo

También podemos usar un fondo más suave.

Combinar mapa y ficha

Para combinar dos gráficos usamos el paquete patchwork.

contexto_vilcun <- mapa_vilcun_colores + ficha_vilcun_color +
  plot_layout(widths = c(1.2, 1)) +
  plot_annotation(
    title = "Contexto comunal para el análisis de remuneraciones municipales",
    subtitle = "Vilcún combina ruralidad, alta dependencia fiscal y desafíos sociales relevantes.",
    theme = theme(
      plot.title = element_text(face = "bold", size = 18, color = "#003A70"),
      plot.subtitle = element_text(size = 12, color = "grey30"),
      plot.margin = margin(10, 10, 10, 10)
    )
  )

contexto_vilcun

Combinar mapa y ficha

Para combinar dos gráficos usamos el paquete patchwork.

Cambiar proporción entre mapa y ficha

El argumento widths permite cambiar el espacio asignado a cada parte.

contexto_vilcun_mapa_grande <- mapa_vilcun_colores + ficha_vilcun_color +
  plot_layout(widths = c(1.5, 1)) +
  plot_annotation(
    title = "Contexto comunal para el análisis de remuneraciones municipales",
    subtitle = "Vilcún, Región de La Araucanía",
    theme = theme(
      plot.title = element_text(face = "bold", size = 18, color = "#003A70"),
      plot.subtitle = element_text(size = 12, color = "grey30"),
      plot.margin = margin(10, 10, 10, 10)
    )
  )

contexto_vilcun_mapa_grande

Cambiar proporción entre mapa y ficha

El argumento widths permite cambiar el espacio asignado a cada parte.

Versión con ficha más grande

contexto_vilcun_ficha_grande <- mapa_vilcun_colores + ficha_vilcun_color +
  plot_layout(widths = c(1, 1.3)) +
  plot_annotation(
    title = "Contexto comunal para el análisis de remuneraciones municipales",
    subtitle = "Vilcún, Región de La Araucanía",
    theme = theme(
      plot.title = element_text(face = "bold", size = 18, color = "#003A70"),
      plot.subtitle = element_text(size = 12, color = "grey30"),
      plot.margin = margin(10, 10, 10, 10)
    )
  )

contexto_vilcun_ficha_grande

Versión con ficha más grande

Exportar imagen final

Una vez elegida la versión final, exportamos el resultado.

ggsave(
  filename = "contexto_comunal_vilcun.png",
  plot = contexto_vilcun,
  width = 12,
  height = 6,
  dpi = 300
)

¿Qué tamaño conviene usar?

Para un póster, conviene exportar en alta resolución.

Uso Ancho Alto DPI
Imagen horizontal 12 6 300
Imagen vertical 7 9 300
Imagen pequeña 8 4 300

El valor dpi = 300 permite que la imagen tenga buena calidad para impresión.

Variables mínimas para la ficha

Dimensión Variable
Territorial región, provincia, superficie
Demográfica población
Social pobreza por ingresos
Social pobreza multidimensional
Territorial ruralidad
Fiscal dependencia del FCM
Política alcalde o alcaldesa
Política tendencia política
Política continuidad o cambio político reciente

Criterios de calidad visual

Una buena ficha debe cumplir con cinco criterios:

  1. Debe ser legible.
  2. No debe estar sobrecargada.
  3. Debe usar colores consistentes.
  4. Debe tener fuente de información.
  5. Debe aportar contexto para interpretar los datos.

Errores frecuentes

Eviten estos errores:

  • usar un mapa sin indicar qué comuna está destacada
  • poner demasiados datos en la ficha
  • usar colores muy fuertes o difíciles de leer
  • olvidar la fuente
  • exportar en baja resolución

Entregable del laboratorio

Cada grupo debe entregar una imagen en formato .png.

El nombre del archivo debe seguir esta estructura:

contexto_comunal_nombrecomuna.png

Preguntas de cierre

Antes de incorporar la ficha al póster, cada grupo debe responder:

  1. ¿Qué característica territorial destaca en la comuna?
  2. ¿La comuna es principalmente urbana, rural o mixta?
  3. ¿Qué tan dependiente es de recursos externos?
  4. ¿Qué elementos sociales ayudan a contextualizar el análisis?
  5. ¿Existe continuidad o cambio político reciente?

Cierre del laboratorio

El mapa y la ficha comunal no son un adorno.

Son una herramienta para interpretar mejor el análisis de remuneraciones municipales.

El objetivo final es que el póster no solo muestre datos, sino que también explique el contexto institucional y territorial en el que esos datos se producen.