Es bueno saber que Plotly, antes de ser una conocida librería Python, es una empresa con sede en Montreal que fue fundada por cuatro personas. Su objetivo es desarrollar herramientas de visualización y analizar datos. En este artículo, nos centraremos en la librería Python plotly.
¿Qué otras herramientas ofrece Plotly?
Los productos de la empresa son muchos y variados. El framework Python Dash, que permite el desarrollo de aplicaciones web, es uno de ellos. Ofrece aplicaciones web desplegadas a través de un navegador web para compartir la visualización de datos en línea. Chart studio es otro ejemplo de herramienta creada por la empresa. Es una infraestructura de software para almacenar gráficos en una interfaz pública o privada. El modo público pone a disposición de todos los usuarios varios gráficos prediseñados para que los descarguen.
Entre las diferentes herramientas y librerías que ofrece Plotly en el campo de la estadística y el análisis de datos, a continuación echaremos un vistazo a la famosa librería Plotly.
¿Cuáles son las librerías que ofrece Plotly para la visualización de datos?
1. Comparación con matplotlib
Gracias al desarrollo de diferentes API, Plotly es una librería disponible en varios lenguajes de programación, especialmente en Python (plotly.py), en Java (plotly.js), R, Julia, Matlab, etc. Permite la creación de gráficos complejos y variados. A continuación, nos centraremos en Plotly en lenguaje Python porque es el lenguaje más popular en Machine Learning, además de ser uno de los más fáciles de aprender.
Sin embargo, en este lenguaje ya existe una librería gráfica, mucho más antigua que Plotly, llamada Matplotlib. Esta también permite crear varios gráficos en pocas líneas de código y parece bastante exhaustiva.
La pregunta que podríamos hacernos es, ¿en qué se diferencia Plotly de Matplotlib? ¿Cuál es el valor añadido de Plotly?
La respuesta está en los modos adicionales que propone Plotly. De hecho, a diferencia de Matplotlib, Plotly es una librería colaborativa e interactiva. Gracias a Chart studio, ofrece un servicio web y un modo colaborativo que, como se ha mencionado anteriormente, permite descargar y guardar gráficos de datos en una cuenta personal. Es la interacción con los diferentes servidores de Plotly la que permite la creación de este servicio web y el modo colaborativo. Sin embargo, se puede activar un modo (importando el paquete offline) que impide difundir gráficos en la nube y hace que solo se pueda acceder a ellos en local. De este modo, se interrumpe la conexión entre los diferentes servidores de Plotly y se detiene el modo colaborativo.
Además, la visualización de datos con Plotly es más avanzada que con Matplotlib. Ofrece la creación de más de 40 tipos de gráficos, muy variados que van desde los clásicos hasta interactivos, pasando por animaciones y gráficos en 3D.
Además de la facilidad de uso y la gran capacidad para personalizar los gráficos, otra gran ventaja de Plotly es su capacidad para detectar valores atípicos en una base de datos, incluso si esta es muy grande. En efecto, con Plotly se puede beneficiar determinada información de los datos simplemente pasando el ratón sobre el gráfico. Así, mediante la lectura del gráfico, se pueden identificar y recuperar los valores atípicos.
2. Las sublibrerías de Plotly
En esta sección, presentaremos algunas librerías importantes de Plotly. Cada una de ellas permite utilizar herramientas adicionales.
plotly.offline es una librería que permite guardar los gráficos en el ordenador local y generarlos sin conexión, abriéndolos en el navegador web.
- plotly.plotly es una sublibrería que tiene la función de hacer de enlace entre Plotly y tu máquina local. En otras palabras, es una interfaz que contiene las funciones que deben ejecutarse según los comandos del servidor Plotly.
- plotly.graph.objects proporciona objetos que contribuyen hacer trazos en los gráficos. Permite personalizar los gráficos.
- plotly.express permite visualizar nuestros gráficos de forma inmediata.
plotly.tools proporciona varias herramientas adicionales. Por ejemplo, permite crear subplots, es decir, una serie de subgráficos.
3. Demostración del funcionamiento de Plotly
Para entender mejor el funcionamiento de Plotly, vamos a intentar visualizar datos a través de un ejemplo concreto. Para este paso, contamos con una base de datos en formato .csv, que da acceso a información del año 2016 sobre el sistema de alquiler de bicicletas en Chicago llamado Divvy.
Hist matplotlib vs plotly
A continuación se muestran 2 histogramas sencillos que muestran los diferentes tipos de viajes en Montreal.
El primero es un gráfico Matplotlib y el segundo es un histograma Plotly.
Observamos que los gráficos son bastante similares. La principal diferencia es la disposición de varios botones visibles en la parte superior derecha del gráfico creado con Plotly. Por ejemplo, el primer icono permite descargar el gráfico directamente, lo que permite obtener una imagen de mejor calidad que si se hubiera guardado de otro modo.
En la imagen de arriba, el segundo icono muestra que se trata de un botón disponible para ampliar el histograma. El resto de las opciones son otras características para la interacción con el usuario.
Los mapas con Plotly
Con Plotly, se pueden crear mapas para visualizar la cartografía del planeta, de un continente o incluso de una ciudad. Los mapas térmicos, por ejemplo, son figuras térmicas que representan los datos en color según su frecuencia o posición. Los colores son visibles en un friso en forma de degradado. Por ejemplo, al hacer un mapa que muestre las frecuencias de nuestros datos, cuanto más frecuente sea el valor de un dato, más lejos estará su color en el friso del valor raro.
En nuestro caso práctico, intentaremos visualizar, con ayuda de dos líneas dibujadas en un mapbox, los dos trayectos más largos realizados en bicicleta. Es decir, las rutas en las que el punto de partida y el punto final son los más alejados a nivel geográfico.
Como se ha mencionado más arriba, al pasar el ratón por encima de los datos visibles en el mapa, se puede obtener más información sobre los datos en cuestión. En las dos imágenes siguientes se puede leer la latitud y la longitud de los dos puntos seleccionados.
Los gráficos 3D
Los gráficos en 3D, que se crean fácilmente con Plotly, permiten ofrecer mucha información en una sola representación gráfica. A continuación, vemos la distribución de una muestra de las estaciones de bicicleta en relación con su longitud y latitud. Las estaciones están en la tercera dimensión distribuidas según su uso mensual. Están representadas por puntos de tamaño variable según la frecuencia de su uso. Además, una estación se representa en rojo si es la más frecuentada por hombres y en azul si es la más frecuentada por mujeres.
Los gráficos 3D son móviles. Se pueden girar y ampliar en todas las direcciones para obtener diferentes vistas, según sea necesario. Aquí hay dos ejemplos en imágenes.
A continuación, se destaca el eje que representa los meses del año.
La creación de un menú desplegable con Plotly
Se puede modificar un gráfico con un menú desplegable que permite especificar lo que se quiere observar. Con la librería de widgets, se ha podido crear el siguiente diagrama para mostrar la duración de los trayectos realizados por los usuarios según los días y los meses.
El menú permite seleccionar la estación de inicio de los trayectos, el tiempo que hacía el día en que se realizaron y el mes en que tuvieron lugar. Se puede elegir marcar o desmarcar la división en días del histograma.
Resultados después de usar Plotly
Plotly es, sin duda, una herramienta crucial en el campo de la visualización de datos. Es más bien fácil de usar y permite crear gráficos complejos y elaborados con el objetivo de representar bien los datos y hacerlos comprensibles.