17 Desarrollo de tableros de control
17.1 Resumen
Los tableros de control son interfaces gráficas que presentan conjuntos de visualizaciones como tablas, gráficos y mapas. El paquete flexdashboard
de R está orientado a la creación de tableros interactivos mediante R Markdown.
17.2 Trabajo previo
17.2.1 Lecturas
Moraga, P. (2019). Geospatial Health Data: Modeling and Visualization with R-INLA and Shiny (capítulo 12). Chapman & Hall/CRC. https://www.paulamoraga.com/book-geospatial/
17.3 Preparativos
17.3.1 Instalación y carga de paquetes
# Instalación de flexdashboard
install.packages("flexdashboard")
# Carga de flexdashboard
library(flexdashboard)
17.4 Tableros de control
Los tableros de control, también llamados tableros de mando, cuadros de mando o, en inglés, dashboards, son interfaces gráficas que presentan visualizaciones de datos junto con herramientas para controlarlas (ej. acercamientos, alejamientos, búsquedas, ordenamientos, filtros). Estas visualizaciones pueden incluir tablas, gráficos y mapas, entre otras (ej. COVID-19 Map - Johns Hopkins Coronavirus Resource Center).
17.5 El paquete flexdashboard
flexdashboard es un paquete de R orientado a la creación de tableros interactivos mediante R Markdown. Algunas de sus principales características son:
- Soporta una gran cantidad de componentes tales como tablas, gráficos, mapas, anotaciones de texto, cajas de valores (value boxes) e indicadores (gauges), entre otros. Algunos de estos componentes están disponibles como htmlwidgets (herramientas de JavaScript disponibles en R).
- Permite configuraciones (layouts) orientados a filas o a columnas. Los componentes que se colocan en estas configuraciones se adaptan a diferentes tamaños de pantalla (ej. dispositivos móviles).
- Soporta el desarrollo de storyboards, para presentar secuencias de visualizaciones acompañadas de textos explicativos.
- Opcionalmente, puede utilizarse en combinación con Shiny para añadir interactividad a las visualizaciones.
- Opcionalmente, puede emplear bslib para personalizar colores, tipos de letra y otros aspectos visuales de los tableros.
17.5.1 Estructura de un documento flexdashboard
Como otros documentos R Markdown, la estructura de un tablero de control flexdashboard se basa en los encabezados Markdown, de la siguente manera:
- Encabezados de nivel 1: páginas del tablero.
- Encabezados de nivel 2: filas o columnas.
- Encabezados de nivel 3: secciones de una fila o columna en las que se ubican los diferentes componentes (tablas, gráficos, mapas, value boxes, anotaciones, etc.) en secciones de código (chunks) de R.
17.6 Documentación
Se recomienda leer:
También es recomendable consultar la guía de referencia de flexdashboard.
17.7 Ejemplos
El sitio web de flexdashboard
contiene enlaces a varios ejemplos de tableros de control.
También puede consultar los siguientes ejemplos desarrollados con algunos de los conjuntos de datos utilizados en clase y su código fuente:
17.8 Ejercicios
- Desarrolle un tablero de control con datos de cantones de Costa Rica.
- Cree un repositorio en su cuenta en GitHub, con el nombre
tablero-cantones
y clónelo a su computadora con RStudio. - En el directorio del proyecto que acaba de crear, copie el archivo GeoJSON con los polígonos de los cantones de Costa Rica o su versión con geometrías simplificadas.
- Cree un documento R Markdown correspondiente a un tablero de control y nómbrelo
index.Rmd
. - En las secciones del tablero coloque:
- Una tabla creada con el paquete
DT
que muestre, al menos, las columnasprovincia
,canton
yarea
. - Un mapa creado con el paquete
leaflet
que despliegue una capa base y los polígonos de los cantones. - Un gráfico de barras creado con los paquetes
ggplot2
yplotly
que muestre el área de cada cantón (o de un subconjunto de cantones que quepa en la pantalla).
- Una tabla creada con el paquete
- Debe crear las secciones de código necesarias para cargar los paquetes, leer los datos y realizar cualquier transformación requerida.
- Publique el proyecto como un sitio en GitHub Pages.
- Ensaye diferentes configuraciones del tablero de control (si es conveniente, agregue más tablas, gráficos y mapas de ejemplo):
- Cambie la configuración de columnas a filas o viceversa.
- Use varias páginas para distribuir los componentes.
- Coloque varios componentes en la misma fila o columna.
- Utilice tabsets en filas y columnas.
- Pruebe otras opciones usadas en los ejemplos o explicadas en las páginas de documentación mencionadas arriba.
- Cree un repositorio en su cuenta en GitHub, con el nombre
- Desarrolle un tablero de control con datos de distritos de Costa Rica (geometrías de distritos simplificadas), siguiendo los pasos del ejercicio con datos de cantones.