Cómo construir visualizaciones de datos interactivas usando Plotly y Python

Cómo construir visualizaciones de datos interactivas usando Plotly y Python

Python es ideal para la exploración y el análisis de datos, y todo gracias al soporte de bibliotecas increíbles como numpy, pandas, matplotlib y muchas otras. Durante nuestra fase de exploración y análisis de datos, es muy importante comprender los datos con los que estamos tratando, y las representaciones visuales de nuestros datos pueden ser extremadamente importantes.

Es común que trabajemos en estos proyectos usando las computadoras portátiles Jupyter porque son geniales, rápidos, simples y nos permiten interactuar y jugar con nuestros datos. Sin embargo, hay limitaciones en lo que podemos hacer, normalmente cuando trabajamos con gráficos usamos bibliotecas como matplotlib o seaborn, pero esas bibliotecas muestran imágenes estáticas de nuestros cuadros y gráficos. Muchas cosas se pierden en los detalles y, por lo tanto, necesitamos ajustar nuestros gráficos para explorar secciones de nuestros datos. ¿No sería genial si pudiéramos interactuar con nuestros gráficos haciendo zoom y agregando información contextual a nuestros puntos de datos, como las interacciones de desplazamiento? Aquí es donde Plotly puede ayudarnos.

Plotly es una biblioteca de Python que crea gráficos interactivos con calidad de publicación, como gráficos de líneas, gráficos de dispersión, gráficos de área, gráficos de barras, barras de error, gráficos de cuadros, histogramas, mapas de calor, subtramas y mucho más.

(Leer: Cómo usar Python y Selenium para raspar sitios web)

Entonces, comencemos a construir algunos gráficos …

Instalar dependencias

Antes de construir cualquier cosa, instalemos dependencias. Me gusta usar pipenv pero lo mismo se aplica a anaconda u otros administradores de paquetes.

Aquí está la lista de dependencias que necesitamos:

  • jupyter: una aplicación web que te permite crear y compartir documentos que contienen código en vivo, ecuaciones … ¡tú lo sabes!
  • pandas: Una biblioteca muy poderosa para el análisis de datos en general y la usaremos en nuestro proyecto para manejar nuestros datos.
  • numpy: Una computación científica para Python, utilizada en nuestro proyecto para matemáticas y generación de números aleatorios.
  • seaborn: una visualización de datos estadísticos basada en matplotlib, la usaremos para cargar algunos datos de muestra que vienen con la biblioteca.
  • gemelos: esto permite a plotly trabajar con pandas.
  • plotly: una biblioteca de gráficos interactivos.

Aquí están los comandos para instalarlos:

Empezando

Para comenzar, necesitamos iniciar nuestro cuaderno jupyter y crear un nuevo documento:

Una vez allí, podemos comenzar a agregar algo de código. Como este artículo no es un tutorial sobre los cuadernos Jupyter, solo me centraré en el código y no en cómo usar el documento.

Comencemos a importar las bibliotecas:

Plotly, con la ayuda de otras bibliotecas, puede representar las tramas en diferentes contextos. Por ejemplo, en una computadora portátil Jupyter, en línea en el tablero de gráficos, etc. De manera predeterminada, la biblioteca funciona con el modo fuera de línea, que es lo que queremos. Sin embargo, también tenemos que decirle a los gemelos que usaremos el modo fuera de línea para los gráficos. Esta configuración se puede hacer mediante programación agregando la siguiente celda a nuestro cuaderno:

Ahora estamos listos para obtener algunos datos y comenzar a trazar.

Generando datos aleatorios

No quiero centrarme tanto en cómo cargar o recuperar datos, por eso, simplemente generaremos datos aleatorios para los gráficos, en una nueva celda podemos usar pandas y numpy para construir una matriz 3D:

Usando numpy podemos generar nuestros números aleatorios y luego podemos cargarlos en un objeto Pandas DataFrame. Veamos cómo se ven nuestros datos:

¡Eso es genial! Ahora, es hora de trazar algunos gráficos.

Nuestras primeras parcelas

Una forma conveniente de trazar DataFrames es usar el método iplot disponible en Series y DataFrames, cortesía de gemelos. Comencemos con todos los valores predeterminados:

A primera vista, se parece a cualquier otro gráfico, pero si pasa el mouse sobre el gráfico, comenzará a ver algo de magia. Aparece una barra de herramientas cuando pasa el cursor sobre la esquina superior derecha de la pantalla que le permite hacer zoom, desplazarse y otras cosas. El gráfico también le permite ampliar dibujando un área en el gráfico o simplemente ver una información sobre herramientas en cada punto de datos con información adicional como el valor.

Nuestro gráfico anterior es ciertamente mejor que un gráfico estático, sin embargo, aún no es excelente. Intentemos renderizar el mismo gráfico usando un diagrama de dispersión.

No es terrible, pero no excelente, los puntos son demasiado grandes, cambiemos el tamaño:

¡Mucho mejor! A continuación, intentemos algo diferente.

Gráfica de barras

Olvidemos nuestro conjunto de datos generados aleatoriamente por un minuto y carguemos un conjunto de datos popular de la biblioteca nacida para representar otros tipos de gráficos.

El conjunto de datos en el que trabajaremos se llama "titánico" y contiene información sobre lo que sucedió con las personas que viajaban en el Titanic ese trágico día.

Una variable especial en este conjunto de datos es el survived variable, que contiene información booleana, 0 para quienes murieron y 1 para quienes sobrevivieron al accidente. Creemos un gráfico de barras para ver cuántos hombres y mujeres sobrevivieron:

La tendencia se puede ver fácilmente, sin embargo, si solo comparte este gráfico, es imposible saber de qué estamos hablando, ya que no tiene leyendas ni títulos. Así que arreglemos eso:

¡Eso ahora es mucho mejor!

Pero, ¿qué pasa si queremos dibujar un diagrama de barras horizontal? Suficientemente fácil:

Temas

Nuestros gráficos hasta ahora se ven geniales, pero tal vez queremos usar un color diferente esquema para nuestros gráficos Afortunadamente, tenemos un conjunto de temas que podemos usar para renderizar nuestras tramas. Vamos a enumerarlos y cambiar a otro.

Listado de temas:

Debería generar algo como sigue:

Podemos cambiar el tema para todos los gráficos futuros simplemente agregando:

Y ahora, si renderizamos nuestro gráfico de barras nuevamente, obtenemos algo como:

El modo oscuro es uno de mis favoritos.

Cartas de superficie

Hasta ahora, representamos gráficos en 2D, pero plotly también admite gráficos en 3D. Construyamos algunos gráficos en 3D solo por diversión. El siguiente gráfico es el gráfico de superficie 3D y para eso, necesitamos crear algunos datos usando pandas como se ve a continuación:

Deberías obtener algo como:

Ahora arrojemos esto en un gráfico 3D usando el tipo de "superficie":

¡Se ve increíble! Ahora, cambiemos la escala de colores para que sea visualmente más atractiva:

¡Hermoso! Pero eso no es todo, ¿ha intentado interactuar con el gráfico en su cuaderno? Incluso puedes rotarlo.

Plotly es una excelente alternativa gráfica para su análisis y exploración de datos. Como se ve en este artículo, proporciona paneles interactivos que pueden ayudarlo a identificar mejor sus valores atípicos y obtener una mejor comprensión de sus datos al navegar a través de ellos. Probablemente no usaré plotly para cada conjunto de datos, pero es una biblioteca muy interesante que deberíamos conocer.

Esta artículo fue publicado originalmente en Transmisión de código en vivo por Juan cruz martinez (gorjeo: @bajcmartinez), fundador y editor de Live Code Stream, emprendedor, desarrollador, autor, orador y hacedor de cosas.

Transmisión de código en vivo también está disponible como un boletín semanal gratuito. Regístrese para recibir actualizaciones sobre todo lo relacionado con la programación, la inteligencia artificial y la informática en general.

Pssst, ¡hola!

¿Desea recibir el boletín técnico diario más atrevido todos los días, en su bandeja de entrada, GRATIS? Por supuesto que sí: regístrate en Big Spam aquí.

Deja un comentario