Column

Conteo de personas por municipio

Viviendas con internet

Column

Viviendas por municipio

Viviendas con Enegia electrica

---
title: "Taller creación Dashboard Interactivo"
output: 
  flexdashboard::flex_dashboard:
    orientation: columns
    social: menu
    source_code: embed
---

```{r setup, include=FALSE}
library(flexdashboard)
library(raster)
library(plotly)
library(tidyverse)
library(sf)
library(ggplot2)
library(GWalkR)
library(shiny) 
library(leaflet)
library(geojsonio)
library(highcharter)
library(dplyr)
library(viridisLite)
library(forecast)
library(treemap)
library(arules)
library(flexdashboard)

thm <- 
  hc_theme(
    colors = c("#1a6ecc", "#434348", "#90ed7d"),
    chart = list(
      backgroundColor = "transparent",
      style = list(fontFamily = "Source Sans Pro")
    ),
    xAxis = list(
      gridLineWidth = 1
    )
  )

setwd("C://Users//kevin//geo_quindio")

st_drivers()

# Mapas

mapa_quindio <- st_read("C:/Users/kevin/geo_quindio/MGN_NivelMunicipioIntegrado_CNPV-20240925T015102Z-001/MGN_NivelMunicipioIntegrado_CNPV/MGN_ANM_MPIOS.shp")
mapa_clase <- st_read("C:/Users/kevin/geo_quindio/MGN_NivelMunicipio_Clase_Integrado_CNPVL-20240925T020351Z-001/MGN_NivelMunicipio_Clase_Integrado_CNPVL/MGN_ANM_MPIOCL.shp")
mapa_rural <- st_read("C:/Users/kevin/geo_quindio/SHP_MGN2018_INTGRD_SECTR-20240925T021653Z-001/SHP_MGN2018_INTGRD_SECTR/MGN_ANM_SECTOR_RURAL.shp")
mapa_urb <- st_read("C:/Users/kevin/geo_quindio/SHP_MGN2018_INTGRD_SECTU-20240925T022113Z-001/SHP_MGN2018_INTGRD_SECTU/MGN_ANM_SECTOR_URBANO.shp")
mapa_centrosPoblados <- mapa_urb[mapa_urb$CLAS_CCDGO == '2',]

# Quindio

quin_mnpios <- mapa_quindio %>% filter(DPTO_CCDGO == 63)
quin_clase <- mapa_clase %>% filter(DPTO_CCDGO == 63)
quin_rur <- mapa_rural %>% filter(DPTO_CCDGO == 63)
quin_urb <- mapa_urb %>% filter(DPTO_CCDGO == 63)
quin_cp <- mapa_centrosPoblados %>% filter(DPTO_CCDGO == 63)


quin_clase <- mapa_clase %>% 
  filter(DPTO_CCDGO == 63) %>%
  mutate(MPIOS = case_when(
    MPIO_CCDGO == 001 ~ "Armenia",
    MPIO_CCDGO == 130 ~ "Calarca",
    MPIO_CCDGO == 401 ~ "La Tebaida",
    MPIO_CCDGO == 594 ~ "Quimbaya",
    MPIO_CCDGO == 190 ~ "Circasia",
    MPIO_CCDGO == 470 ~ "Montenegro",
    MPIO_CCDGO == 690 ~ "Salento",
    MPIO_CCDGO == 272 ~ "Filandia",
    MPIO_CCDGO == 302 ~ "Genova",
    MPIO_CCDGO == 111 ~ "Buenavista",
    MPIO_CCDGO == 212 ~ "Cordoba",
    MPIO_CCDGO == 548 ~ "Pijao",
    TRUE ~ "Armenia"  
  ))

# Leer el shape de municipios del país y transformarlo al sistema CRS 4326 (lat/lon)
mapa_mnpios <- st_read("C:/Users/kevin/geo_quindio/MGN_NivelMunicipioIntegrado_CNPV-20240925T015102Z-001/MGN_NivelMunicipioIntegrado_CNPV/MGN_ANM_MPIOS.shp") %>%
  st_transform(crs = 4326)

# Filtrar por el departamento de Quindío (DPTO_CCDGO == 63) y poner en mayúsculas los nombres
quin_mupios <- mapa_mnpios %>%
  filter(DPTO_CCDGO == 63) %>%
  mutate(MPIO_CNMBR = str_to_title(MPIO_CNMBR))
```


Column {data-width=600}
-----------------------------------------------------------------------

### Conteo de personas por municipio

```{r}
# Agrupar por nombre del municipio y sumar el conteo de personas
quin_mnpios_count <- quin_mnpios %>% 
  group_by(MPIO_CNMBR) %>% 
  summarise(total_personas = sum(STP27_PERS, na.rm = TRUE)) %>% 
  ungroup()

# Crear gráfico de barras interactivo con highcharter
hchart(quin_mnpios_count, "column", 
       hcaes(x = MPIO_CNMBR, y = total_personas)) %>%
  hc_title(text = "Conteo de Personas por Municipio en Quindío") %>%
  hc_xAxis(title = list(text = "Municipios"), labels = list(rotation = -45)) %>%
  hc_yAxis(title = list(text = "Total Personas")) %>%
  hc_tooltip(pointFormat = "<b>{point.x}</b>: {point.y} personas")
```

### Viviendas con internet

```{r}
# Crear una paleta de colores en función del número de viviendas con servicio de internet
paleta_colores <- colorNumeric(
  palette = "YlGnBu",  # Colores que van del amarillo al azul
  domain = quin_mupios$STP19_INT1  # Dominio de valores (número de viviendas con internet)
)

# Crear etiquetas informativas para mostrar en el mapa (al hacer hover sobre un municipio)
etiquetas <- sprintf(
  "<strong>%s</strong><br/>Viviendas con internet: %s",
  quin_mupios$MPIO_CNMBR, quin_mupios$STP19_INT1
) %>% lapply(htmltools::HTML)

# Crear el mapa con leaflet
leaflet(data = quin_mupios) %>%
  addTiles() %>%  # Agregar capa base de mapas (OpenStreetMap)
  addPolygons(
    fillColor = ~paleta_colores(STP19_INT1),  # Colorear en función de las viviendas con internet
    weight = 1,           # Grosor de los límites de los municipios
    color = "black",      # Color del borde
    fillOpacity = 0.7,    # Opacidad del relleno
    label = etiquetas,    # Mostrar información de las viviendas con internet
    highlightOptions = highlightOptions(
      weight = 3,         # Resaltar el borde al hacer hover
      color = "white",
      bringToFront = TRUE
    )
  ) %>%
  addLegend(
    pal = paleta_colores, 
    values = ~STP19_INT1, 
    opacity = 0.7, 
    title = "Viviendas con Internet",
    position = "bottomright"
  )
```


Column {.tabset data-width=400}
-----------------------------------------------------------------------

### Viviendas por municipio

```{r, fig.keep='none'}
# Agrupar por nombre del municipio y sumar el conteo de viviendas
quin_mnpios_viviendas <- quin_mnpios %>% 
  group_by(MPIO_CNMBR) %>% 
  summarise(total_viviendas = sum(STVIVIENDA, na.rm = TRUE)) %>% 
  ungroup()

# Crear el treemap con highcharter
hchart(quin_mnpios_viviendas, "treemap", 
       hcaes(x = MPIO_CNMBR, value = total_viviendas, color = total_viviendas)) %>%
  hc_title(text = "Distribución de Viviendas por Municipio en Quindío") %>%
  hc_tooltip(pointFormat = "<b>{point.name}</b>: {point.value} viviendas")
```

### Viviendas con Enegia electrica

```{r}
# Agrupar y contar las viviendas con energía eléctrica por municipio
conteo_viviendas <- quin_clase %>%
  group_by(MPIOS) %>%
  summarise(ViviendasConEnergia = sum(STP19_EC_1, na.rm = TRUE))

# Crear el gráfico de barras usando highcharter
highchart() %>%
  hc_add_series(
    data = conteo_viviendas$ViviendasConEnergia,
    type = "bar",
    name = "Viviendas con Energía",
    showInLegend = FALSE,
    pointWidth = 10
  ) %>%
  hc_xAxis(categories = conteo_viviendas$MPIOS) %>%
  hc_yAxis(title = list(text = "Número de Viviendas")) %>%
  hc_title(text = "Viviendas con Energía Eléctrica por Municipio - Quindío") %>%
  hc_add_theme(hc_theme_flat())
  
```