App: visualizador de mapas comunales del Censo 2024 por manzanas

19/12/2025

apps shiny mapas Chile

Continuando con la exploración de los datos georeferenciados del Censo 2024 por manzanas, en vez de ponerme a hacer mapas interesantes, hice una aplicación para visualizar mapas de cualquier variable del Censo en cualquier comuna del país, a nivel de manzana.

Aplicación

Es una aplicación súper sencilla, que carga las cartografías oficiales del Censo en formato Arrow como una base de datos, a la cual por medio de queries se le filtran región, comuna y la columna de variable elegida, para generar un mapa simple de una comuna dividida en manzanas censales 🍎

Toda la app fue hecha en R en menos de media hora ⏱️ gracias a la conveniencia de {dplyr} para poder conectarse a los datos cargados como base de datos por Arrow, al tutorial de hacer mapas del Censo 2024 con {ggplot2}, al tutorial para poner temas a las apps Shiny y al tutorial para temas de gráficos ggplot2.

En el fondo hice la app para aprender la carga de datos formato Arrow como base de datos, que es extremadamente fácil de hacer con R y {dplyr}, y me hizo pasar de cargar datos y filtrar en 1.1 segundos a tan sólo 0.1 segundos! 🚀 Si quieres que haga un tutorial de eso déjame un comentario o escríbeme 🤭

Resumen del código

Quiero destacar lo simple que es hacer aplicaciones como ésta con Shiny.

El código de la app son apenas 200 líneas, donde prácticamente lo único que se hace es crear los botoncitos, cargar los datos, filtrarlos y generar el gráfico.

La carga de los datos con {arrow} se hace con open_dataset() para cargar como base de datos sin leer todo el archivo ni traer los datos a la memoria.

# cargar datos
datos <- arrow::open_dataset("Cartografia_censo2024_Pais_Manzanas.parquet",
                             partitioning = c("COD_REGION", "CUT")
                             )

Luego simplemente con {dplyr} se hacen los filtros, que internamente se convierten a queries SQL que van a cargar y obtener solamente los datos necesarios desde la base de datos:

 datos_fitrados <- datos() |>
      # filtrar filas
      filter(COD_REGION == input$region,
             CUT == input$comuna) |>
      # seleccionar columnas
      select(all_of(input$variable), SHAPE) |> 
      # traer datos a memoria
      collect() |> 
      # convertir mapa
      st_as_sf(crs = 4326)

Finalmente los datos filtrados se visualizan como un mapa en {ggplot2}:

datos_filtrados |> 
      ggplot() +
      aes(fill = !!sym(input$variable)) + # variable elegida
      geom_sf(color = "#181818", linewidth = 0.1) +
      # paleta de colores
      scale_fill_fermenter(palette = 13, na.value = "#181818") +
      # tema
      theme(axis.text.x = element_text(angle = 90, vjust = .5),
            axis.ticks = element_blank(),
            panel.background = element_blank(),
            panel.grid = element_line(color = "#333333"),
            axis.text = element_text(color = "#444444"),
            legend.text = element_text(color = "#666666")) +
      guides(fill = guide_legend(title = NULL,
                                 position = "top"))

La gracia de Shiny es que puedes tomar cualquier código de R que harías normalmente, y ponerlo dentro de una app interactiva, para lo que solamente necesitas reemplazar los filtros, selecciones, y otros lugares donde escribirías cosas a mano por un input$algo que sería la selección hecha por la/él usuaria/o de la aplicación web.

Fecha de publicación:
December 19, 2025
Extensión:
3 minute read, 534 words
Categorías:
aplicaciones
Tags:
apps shiny mapas Chile
Ver también:
Medir el ancho de una aplicación Shiny como una variable reactiva y usarla para adaptar los contenidos de la app
Plataforma de análisis: Índice de Brechas de Género
Galería de libros de _Goodreads_ para tu blog o sitio web con R y Quarto