EAGA Blog

Dash Python

10-06-2021
image

La motivación es lo que te pone en marcha, el hábito es lo que hace que sigas (Jim Ryun).

Con esa frase iniciamos este post que se titula Dash Python si ya hemos hablado de Shiny App y mostramos un ejemplo ahora hablaremos un poco de Dash Python.

En este apartado veremos los siguientes puntos:

  • Que es Dash
  • Configuración y Despliegue
  • Dash o Shiny ?
  • Códigos de Ejemplo Dash

Que es Dash

image

Quiero mencionar que en este apartado no profundizaremos sobre python por lo que si las palabras python, anaconda o jupyter no resulta familiar es mejor que profundices en conceptos básicos de python.

Dicho esto Dash es un framework de Python y recordemos que framework es un entorno de trabajo con características especificas, este entorno aunque esta diseñado para construir aplicaciones web suele usarse para crear visualizaciones, cuadro de mandos (Dashboard), si muy idéntico a a Shiny en R

Dash está basado principalmente en Flask, Plotly y ReactJS:

  • Flask: es un framework minimalista escrito en Python que permite crear aplicaciones web rápidamente y con un mínimo número de líneas de código.
  • Plotly: es una biblioteca interactiva de código abierto que admite diversos tipos de gráficos para usos estadísticos, financieros, geográficos, científicos y tridimensionales.
  • ReactJS: es una biblioteca escrita en javascript y de código abierto cuya finalidad es crear interfaces de usuario.

Con el conjunto de herramientas descritas podríamos decir que Dash es multiplataforma esto quiere decir que puedes diseñar la aplicación para distintos tipos de pantallas en un solo código, es opensource este termino cada vez se vuelve imprescindible ya que puedes ahorrar costo a la hora de la implementación y por ultimo y no menos importante es posible crear aplicaciones de manera muy rápida aunque esto tiene sus excepciones.

Configuración y Despliegue

image

Es importante que descargues el paquete de Anaconda importante utilizar al ultima version (Python 3.8) una vez tengas instalado Anaconda seleccionaremos las herramientas de jupyter notebook y jupyter lab dos herramientas para la edicion de codigo en python es mi sugerencia para los que que inician en python el indentado puede ser difícil de comprender y tiende a presentar muchos errores al compilar

image

Si tu aplicación esta lista para ver el mundo o ser mostrada aquí tienes diversos escenarios pero el que mas te recomiendo Heroku por su fácil integración con proyectos alojados en GitHub básicamente la diferencia esta en que no cargas un proyecto como en shiny con RStudio sino que despliegas un servicio

Dash o Shiny ?

image
image

Creo que la pregunta es cual elegir y quisiera aclarar que no es mi intención decirte a ti cual es la mejor o cual sirve o no lo que si expondré sus bondades y algunas deficiencias entre ambas al final tu como programador tomas las herramienta que mejor se adapta a tu trabajo:

En términos generales Dash esta basado en Python y utiliza Flask, Plotly.js y React.js para el desarrollo de aplicaciones por lo que crear paneles administrativos es realmente comodo y mas si python es tu herramienta de preferencia, por otro lado Shiny utiliza R para su programación y puede ser potenciado con el uso de html, css y java script. En términos generales ambas herramientas cumple los objetivos aclaramos que para ambas debes tener un mínimo de conocimiento de programación.

Comparando Codigo cada framework por lo general entrega un básico de código con lo que creamos el común Hola Mundo para el caso de Dash es necesario mas lineas de código inclusive la importacion de una librería que sirve los componentes html, en el caso de Shiny no es necesario importar librerías.

Si queremos ver elementos de interfaces de usuario nuevamente Dash necesita añadir una librería mas para estas tareas en el caso de Shiny no es necesario inclusive su código es intuitivo si conoces algo de HTML.

Ahora hablemos del diseño hoja de estilos (CSS) ambos framework pueden utilizar cualquier hoja de estilos, por defecto Shiny utiliza bootstrap cabe mencionar que en una version 3.8 pero puedes utilizar cualquier otra version con algo de codigo extra de este modo ambos se sirven de cualquier framework CSS

Códigos de Ejemplo

En esta sección estará disponible el enlace al repositorio deploy-python y el ejemplo desarrollado el enlace directo a la ShinyApp es Dashboard