Logotipo de Zephyrnet

Creación de gráficos interactivos y animados con ipyvizzu

Fecha:

Introducción

Visualización de datos (DV) juega un papel crucial en el análisis e interpretación de datos. Ayuda a identificar patrones, tendencias y relaciones en conjuntos de datos grandes y complejos, lo que facilita la comunicación de conocimientos y hallazgos a un público más amplio. Con la creciente importancia de la ciencia de datos y el aprendizaje automático, el análisis de datos ocupa un lugar especial en muchas industrias y campos. Este artículo presentará ipyvizzu, un paquete de visualización de Python que permite la creación de análisis animados dentro del cuaderno para la presentación.

Los resultados del análisis de datos se presentan a las partes interesadas, la narración de historias es una habilidad clave en el análisis de datos. Para explicar de manera efectiva los resultados del análisis de datos, uno puede usar los hallazgos para contar una historia a través de los datos. El uso de animaciones para comunicarse ayuda a la audiencia a notar la información resaltada y absorber el mensaje previsto en la historia de datos.

OBJETIVOS DE APRENDIZAJE

  1. Aprende sobre ipyvizzu y sus principales características
  2. Revise algunas aplicaciones del mundo real para ipyvizzu
  3. Comprender la base de ipyvizzu, incluidos sus estados de animación y los tipos de argumentos que no son palabras clave
  4. Conoce las diferentes formas de trabajar con datos en ipyvizzu
  5. Aprende a construir gráficos usando ipyvizzu
  6. Comprender cómo animar gráficos con ipyvizzu

Este artículo fue publicado como parte del Blogatón de ciencia de datos

Índice del contenido

¿Qué es ipyvizzu?

Ipyvizzu es una poderosa herramienta de visualización animada que funciona con portátiles como Jupyter, Google Colab, Databricks, Kaggle y Deepnote. Se basa en el paquete de gráficos JavaScript/C++ de código abierto. vizzu y permite a los profesionales de la ciencia de datos aprovechar la animación de Python para la narración de datos.

¿Qué es ipyvizzu? | Visualización de datos

Ipyvizzu cuenta con un motor genérico de visualización de datos. Este motor crea muchos tipos de gráficos y permite transiciones sencillas entre ellos, lo que lo convierte en una herramienta adecuada para crear historias de datos animadas. La extensión ipyvizzu-story permite presentar gráficos animados directamente desde cuadernos. Ipyvizzu está diseñado con animación en foco y sigue las pautas de visualización de datos de forma predeterminada. Funciona a la perfección con los marcos de datos de Pandas. La función de desplazamiento automático mantiene el gráfico posicionado incluso cuando se ejecutan varias celdas. Esto facilita el seguimiento de los datos.

Instalación de ipyvizzu

Usemos Ipyvizzu en una amplia variedad de entornos e instálelo fácilmente usando el comando pip.

pip install ipyvizzu

El siguiente comando para actualizarlo:

pip install -U ipyvizzu

Importe las clases y funciones necesarias de la biblioteca ipyvizzu para crear visualizaciones interactivas en cuadernos Jupyter:

from ipyvizzu import Chart, Data, Config, Style

Aquí Chart representa un gráfico de visualización; Los datos representan un objeto de datos, es decir, una entrada a este gráfico; La configuración representa los detalles del gráfico seleccionado, como el tipo de gráfico, el eje X y las etiquetas del eje Y, el título, etc. De manera similar, el estilo representa las opciones de estilo para un gráfico (p. ej., color, tamaño de fuente, estilo de línea, etc.).

fundación de ipyvizzu

El núcleo de un gráfico de ipyvizzu es su animación, que incluye estados que definen la configuración de un gráfico. Pueden ser series de datos, etiquetas, títulos, sistemas de coordenadas, etc. Cada gráfico estático es el resultado de un solo estado de animación. Sin embargo, ipyvizzu puede hacer la transición entre múltiples estados automáticamente.

Fundación de ipyvizzu | Visualización de datos
Fuente: ipyvizzu.vizzuhq.com

Podemos usar el método animate para crear un nuevo estado de animación e iniciar la animación, que toma tanto argumentos de palabras clave como de palabras clave. Los argumentos que no son palabras clave configuran el gráfico, mientras que los argumentos de palabras clave opcionales controlan cómo ipyvizzu debe animarse al nuevo estado. Hay tres tipos de argumentos que no son palabras clave:

  • "datos” para agregar los datos a visualizar
  • "config” para ajustar la serie, el título, la geometría, la alineación, etc. del gráfico.
  • "papa” para personalizar la apariencia del gráfico.

Trabajar con datos en ipyvizzu

Actualmente, ipyvizzu admite dos tipos de series de datos, es decir, dimensiones y medidas. Las dimensiones son las porciones que utiliza ipyvizzu para dividir el cubo de datos y las medidas son los valores dentro del cubo. Las dimensiones son series categóricas que pueden contener tanto números como cadenas, pero siempre se consideran "cadenas". Debemos incluir datos temporales como dimensiones (fechas o marcas de tiempo). Se recomienda agregar datos temporales en el orden proporcionado en el conjunto de datos, del más antiguo al más reciente, porque ipyvizzu dibuja elementos en el gráfico en la misma secuencia proporcionada en el conjunto de datos.

Actualmente, las medidas solo pueden manejar datos numéricos. Hay varias formas de agregar datos a ipyvizzu, incluido el uso de pandas DataFrame, la definición de datos por serie o columna tras columna, la especificación de datos por registros o fila tras fila, el empleo de formularios de cubo de datos y el uso de JSON.

Aquí crearemos un conjunto de datos aleatorio con 100 filas y 6 columnas relacionadas con diferentes productos en una tienda y lo almacenaremos en un marco de datos llamado "data. marco". Los valores de cada columna se generan aleatoriamente.

np.random.seed(42)
products = ['Shirt', 'Pants', 'Shoes', 'Hat']
shops = ['Shop A', 'Shop B', 'Shop C']
data_frame = pd.DataFrame({ 'Product': np.random.choice(products, 100), 'Shop': np.random.choice(shops, 100), 'Color': np.random.choice(['Red', 'Blue', 'Green'], 100), 'Price': np.random.randint(10, 100, 100), 'Quantity': np.random.randint(1, 10, 100), 'Discount': np.random.randint(0, 50, 100)
})

Imprimamos las primeras filas del conjunto de datos usando el siguiente código:

head(data.frame)
Salida
Salida

A continuación, crearemos un objeto de datos y le agregaremos el marco de datos usando el método add_data_frame.

data = Data()
data.add_data_frame(data_frame)

Creación de gráficos con ipyvizzu

Exploremos cómo crear diferentes gráficos usando ipyvizzu. Para empezar, crearemos un gráfico de barras simple.

chart = Chart()
chart.animate( Config.bar( {"x": "Quantity", "y": "Product", "title": "Bar Chart"} )
)
Gráficos de construcción con ipyvizzu | Visualización de datos

Aquí, el código anterior inicializa un objeto Chart y le aplica animación. Usando Config. método de barra, chart.animate establece la configuración del gráfico, que incluye mostrar la cantidad de productos diferentes en el eje x, el precio del producto en el eje y y un título de 'Gráfico de barras'.

A continuación, crearemos un gráfico de barras agrupadas.

chart.animate( Config.groupedBar( { "x": "Quantity", "y": "Color", "groupedBy": "Shop", "title": "Grouped Bar Chart", } )
)
Gráficos de construcción con ipyvizzu | Visualización de datos

El código anterior crea un gráfico de barras agrupadas usando el método Config.groupedBar de la clase Config y establece las opciones de configuración para el gráfico. El parámetro groupedBy determina la agrupación de las barras en función de una columna Shop. Esto significa que las barras están agrupadas por nombre de tienda y el color de cada barra representa los diferentes colores de los productos vendidos por esa tienda. El x y y Las variables especifican las columnas que se utilizarán para los ejes x e y, respectivamente. También hemos especificado el título del gráfico como "Gráfico de barras agrupadas" utilizando el parámetro de título. El gráfico con los parámetros proporcionados se muestra ejecutando el 'chart. animate' con la configuración 'Config.groupedBar'.

Creación de un gráfico circular

Ahora crearemos un gráfico circular que mostrará las proporciones relativas de cada categoría de producto según la cantidad de unidades vendidas de cada producto.

chart.animate( Config.pie( { "angle": "Quantity", "by": "Product", "title": "Pie Chart", } )
)
Gráfico de sectores

El código anterior crea un gráfico circular usando Config. método circular de la clase Config y establece las opciones de configuración para el gráfico. El parámetro de ángulo determina el ángulo de cada porción del pastel en función de la columna de datos "Cantidad". El parámetro by especifica la columna para agrupar los sectores por la columna "Producto". El parámetro de título define el título del gráfico. Llamando al método chart.animate con el Config. configuración circular, se muestra el gráfico.

A continuación, crearemos un gráfico de áreas apiladas. En este gráfico, cada área muestra el precio total de los productos vendidos por una tienda y las áreas están apiladas una encima de la otra, lo que indica el precio total de todos los productos vendidos.

chart.animate( Config.stackedArea( { "x": "Product", "y": "Price", "stackedBy": "Shop", "title": "Stacked Area Chart", } ))
Creación de gráficos con ipyvizzu

El código anterior crea un gráfico de áreas apiladas utilizando el método Config.stackedArea de la clase Config y establece las opciones de configuración del gráfico. El parámetro stackedBy determina el apilamiento de las áreas en función de la columna "Tienda". Las columnas x e y son las columnas que se utilizarán para los ejes x e y, respectivamente. El parámetro de título se utiliza para dar un título a la trama. Finalmente, usando el gráfico. El método animate con la configuración Config.stackedArea muestra el gráfico con la configuración declarada.

El estilo del gráfico se puede modificar utilizando la clase Style. La clase Style se usa para personalizar el elemento que aparece en el gráfico, como la paleta de colores de los marcadores, el tamaño de fuente del título del gráfico, etc. Aquí, usaremos el siguiente código para cambiar la paleta de colores de los marcadores usados ​​en la trama del gráfico. Estableceremos el parámetro colorPalette en una lista de tres colores.

"colorPalette": "#0e0e52 #05668d #33A7FF"

Ejecutaremos nuevamente el código para ver el cambio de color en nuestro gráfico.

chart.animate( Style( { "plot": { "marker": { "colorPalette": "#0e0e52 #05668d #33A7FF" } } } )
)
Gráfico de áreas apiladas con colores personalizados | biblioteca de animación de Python

Ahora animaremos nuestros gráficos anteriores. En el siguiente código, usamos ipyvizzu para animar cuatro tipos de gráficos diferentes con diferentes tiempos y animaciones usando variables de 'duración' y 'aceleración'.

chart.animate( Config.bar( {"x": "Quantity", "y": "Product", "title": "Bar Chart"} ), duration=1, easing="linear"
)
chart.animate( Config.groupedBar( { "x": "Quantity", "y": "Color", "groupedBy": "Shop", "title": "Grouped Bar Chart", } ), duration=6, easing="linear"
)
chart.animate( Config.pie( { "angle": "Quantity", "by": "Product", "title": "Pie Chart", } ), duration=4, easing="linear"
)
chart.animate( Config.stackedArea( { "x": "Product", "y": "Price", "stackedBy": "Shop", "title": "Stacked Area Chart", } ), duration=4, easing="linear"
)
biblioteca de animación de Python | visualización de datos

El objeto Chart se crea y luego se anima usando la configuración. bar, Config.groupedBar, Config.pie, Config.stackedArea métodos y configuraciones.

Puede encontrar Ipyvizzu en plataformas de aplicaciones como Flask, Panel, Streamlit, etc., lo que facilita la integración en sus proyectos y flujos de trabajo existentes. Como resultado, ipyvizzu es una opción excelente y flexible para la visualización de datos en Python. El código de este tutorial con animación está disponible en mi Repositorio GitHub.

Posibles aplicaciones de ipyvizzu

A continuación, echemos un vistazo a dos posibles aplicaciones del mundo real de ipyvizzu:

  1. Análisis de datos de atención médica: Sabemos que los conjuntos de datos de atención médica suelen ser grandes y complejos, y las visualizaciones de datos pueden ayudar a los profesionales de la salud a obtener información sobre la salud del paciente y las perspectivas de diagnóstico. Ipyvizzu puede ayudar a crear visualizaciones interactivas para el análisis de datos de atención médica (p. ej., estado de salud del paciente, efectividad del tratamiento, prevalencia de enfermedades, etc.). La capacidad de interactuar con visualizaciones puede ayudar a los profesionales de la salud a identificar patrones y tomar decisiones basadas en datos.
  2. Análisis de datos financieros: Los conjuntos de datos financieros son bastante difíciles de analizar. Los analistas suelen utilizar técnicas de visualización complejas para comprender los datos. Podemos usar ipyvizzu para crear visualizaciones interactivas y animadas para el análisis de datos financieros, incluidas las tendencias del mercado de valores, los volúmenes de negociación y las carteras de inversión, lo que ayudará a explorar diferentes escenarios. Esto hace posible tomar mejores decisiones para obtener ganancias financieras.

Aparte de los dos anteriores, las visualizaciones de datos interactivos que usan ipyvizzu pueden ser beneficiosas en campañas de marketing donde los especialistas en marketing pueden obtener información sobre el comportamiento y las preferencias de los clientes con datos de marketing (por ejemplo, tráfico del sitio web, tasas de clics de correo electrónico y participación en las redes sociales) y mejorar su ROI ( Retorno de la inversión).

Conclusión

En conclusión, ipyvizzu es un excelente paquete para crear gráficos animados y contar historias con datos usando Python.

Los puntos clave de esta herramienta son:

  • El paquete ipyvizzu es un paquete de Python simple y fácil de usar que puede crear historias animadas.
  • Es una herramienta de gráficos animados para portátiles Jupyter, Google Colab, Databricks, Kaggle y Deepnote.
  • Hay varias formas disponibles de agregar datos a ipyvizzu para crear visualizaciones.
  • Se puede crear una variedad de gráficos con ipyvizzu.
  • Es posible animar múltiples gráficos con ipyvizzu.

Para explorar ipyvizzu, recomiendo leer la documentación oficial de la biblioteca para obtener código de muestra e inspiración. Pruebe esta biblioteca para crear visualizaciones interactivas para su próximo análisis exploratorio de datos.

Los medios que se muestran en este artículo no son propiedad de Analytics Vidhya y se utilizan a discreción del autor.

punto_img

Información más reciente

punto_img

Habla con nosotros!

¡Hola! ¿Le puedo ayudar en algo?