6 Dashboards
6.1 Flexdashboard
El propósito de flexdashboarad es proporcionar una forma simple de escribir aplicaciones interactivas en R basadas en lenguaje Markdown, lo que permite escribir el contenido usando bloques de código R y luego transformarlo en un documento HTML o PDF que incluye gráficos y widgets. Las principales características de flexdashboard son:
Facilidad de uso: Permite crear dashboards sin necesidad de escribir mucho código de interfaz. Simplemente organizando el contenido en secciones y filas se genera un diseño de panel intuitivo.
Layouts adaptativos: Ofrece disposiciones flexibles, como filas y columnas, para distribuir los gráficos y tablas.
Interactividad básica: Se pueden agregar elementos de interacción usando bibliotecas de gráficos interactivas, como plotly o highcharter, pero el nivel de interactividad es más limitado en comparación con Shiny,que aunque no es interactivo por sí mismo, se pueden integrar elementos de Shiny para mejorar la interactividad.
| Característica | Flexdashboard | Shiny |
|---|---|---|
| Nivel de Interactividad | Básica; depende de las bibliotecas de gráficos | Alta; interactividad avanzada y en tiempo real |
| Facilidad de Uso | Fácil; requiere poco código de interfaz | Moderada a compleja; más control pero más configuración |
| Diseño y Layout | Layout basado en RMarkdown, limitado a filas/columnas | Totalmente personalizable mediante código en R |
| Reactivo | Limitado; necesita Shiny para reactividad | Totalmente reactivo |
| Ideal para | Dashboards estáticos o semiestáticos | Aplicaciones web interactivas complejas |
En general, flexdashboard es una excelente opción cuando se necesita construir dashboards rápidos y fáciles de usar sin necesidad de interactividad avanzada, mientras que Shiny es la mejor elección para aplicaciones complejas donde el usuario necesita manipular datos en tiempo real o realizar análisis detallados. Ambas herramientas pueden complementarse: un flexdashboard puede integrar componentes de Shiny para mejorar su interactividad, combinando la simplicidad de un panel con la potencia de una aplicación reactiva.
6.2 Ejemplo
De aquí en adelante se usará el siguiente dashboard:
FIGURA 6.1: Flexdashboard disponible en la siguiente web shinyapps.io/r_flexdashboard y código fuente en repositorio github.com/davidperezros/r_flexdashboard.
Este cuadro de mando contiene los siguientes elementos fundamentales:
Filtro: Permite seleccionar una Comunidad Autónoma y un Año, para el que se muestran los elementos visuales del dashboard.
Cards: Tarjetas visuales superiores que permiten resumir información de manera muy visual. Más adelante se muestra cómo se han construido.
TreeMap: Gráfico que muestra el la distribución del gasto medio por persona en la comunidad y año seleccionado dentro de los grupos ECOICOP. Para ver como se construye, consúltese Sección 4.3.2.
Flexdashboard no es tan facil subirlas a github
Hablar de shiny que tiene una app interactiva para editar shinys https://rstudio.github.io/shinyuieditor/
Luego de bslib que también tiene una para hacer cards
VENTAJAS DE SHINY
Shiny y Flexdashboard son dos potentes herramientas en el ecosistema de R que permiten crear aplicaciones web interactivas y dashboards, respectivamente. Estas herramientas están elaboradas en lenguaje R, lo que significa que los usuarios pueden utilizar el mismo lenguaje tanto para extraer y transformar datos como para visualizarlos. Esto elimina la necesidad de aprender un nuevo lenguaje/técnicas de programación, haciendo que el flujo de trabajo sea más eficiente y permitiendo realizar transformaciones de datos complejas directamente en el entorno de desarrollo.
Shiny es ideal para construir aplicaciones web interactivas. Ofrece una gran flexibilidad y personalización, ya que permite la integración de HTML, CSS y JavaScript. Por otro lado, Flexdashboard facilita la creación de dashboards interactivos a partir de documentos R Markdown, combinando análisis y visualización en un solo archivo.
Por otro lado, herramientas de Business Intelligence como Power BI y Tableau son soluciones comerciales que ofrecen capacidades de análisis y visualización de datos. Estas herramientas están diseñadas para ser intuitivas y fáciles de usar, con interfaces de arrastrar y soltar que permiten a los usuarios sin conocimientos técnicos profundos crear visualizaciones efectivas rápidamente. Además, ofrecen una rica integración con otras herramientas empresariales y sistemas de datos.
Las ventajas de usar Shiny y Flexdashboard radican en su flexibilidad y el hecho de ser de código abierto. Esto permite personalizar y adaptar las aplicaciones y dashboards a necesidades específicas sin los costos asociados a licencias comerciales. Sin embargo, la creación de aplicaciones con Shiny y Flexdashboard puede requerir más tiempo y habilidades técnicas en comparación con Power BI y Tableau, que están diseñados para facilitar el desarrollo rápido de visualizaciones.
Cosas útiles de shiny
Se recomienda la primera vez empezar siguiendo algún tutorial ya que el aprendizaje requiere más esfuerzo al principio. Hay herramientas útiles como https://rstudio.github.io/shinyuieditor/ que permiten construir interactivamente un shiny para tener una base sobre la que empezar. La libreria bslib
dispone de una app interactiva en la que se permmite construir flash cards con el formato y iconos/gráficas deseados. Por otro lado en la web oficial de shiny se incluye un menu interactivo con objetos tipo sliders, barras de búsqueda,… y su código para incluirlo en shiny.
Subir Shiny Apps
Hay varias opciones para publicarlo. Como se comentaba, una de las ventajas de usar shiny bajo la interfaz de R (también está disponible para python) es que al ser código abierto no requiere de licencias ni costes asociados. Sin embargo, si se quiere publicar la aplicación en la web, la mayor parte de casos pasa por servicios de pago. Los más comunes son:
- PositCloud: La cuenta básica es gratuita pero tiene un límite de apps publicadas y horas de consulta mensuales.
- ShinyServer: Completamente de pago.
Leyendo por la web, existe un paquete de R llamado shinylive que permite ejecutar una aplicación shiny en la web sin necesidad de un servidor. Por lo tanto, puede ser interesante para subirlo a github y permitir crear una github pages. Es prometedor.