Visualización de datos animados usando Plotly Express

La visualización de datos es una gran cosa en la industria de la ciencia de datos y mostrar las estadísticas adecuadas a una empresa o gobierno puede ayudarlos enormemente a mejorar sus servicios. Es muy doloroso comprender datos de diferentes momentos de múltiples gráficos y darles algún sentido. Ahí es donde radica la necesidad de visualizaciones de datos animados. En este artículo, vamos a utilizar Plotly Express para trazar y animar los datos y conjuntos de datos de Gapminder. Vamos a ver diferentes tipos de animación proporcionados por Plotly Express.

Instalación

Asegúrese de tener Python 3 instalado en su computadora. Instale Plotly, que se utilizará para animar los datos. Para instalarlo, escriba el siguiente comando en la terminal.

pip install plotly

Use Jupyter Notebooks o Google Colab si no desea instalar el módulo localmente en su computadora.

Importación de módulos y conjuntos de datos

Necesitamos importar Plotly Express y datos mundiales de Gapminder.

import plotly.express as px

gapminder = px.data.gapminder()

Ejemplo: imprimamos las primeras filas de esta base de datos

Python3

import plotly.express as px
  
gapminder = px.data.gapminder()
gapminder.head(15)

Producción:

Datos de Gapminder

Ahora hemos obtenido datos de casi todos los países del mundo desde 1952 hasta 2007 con campos como esperanza de vida, PIB per cápita y población.  

Esperanza de vida Coropleta

Una coropleta es un mapa que usa diferencias de color en áreas definidas sobre una propiedad común para visualizar datos como un resumen agregado de una región (en este caso, un país). Plotly Express facilita el trazado de coropletas. El siguiente código muestra cómo obtener información de gapminder. Establezca el parámetro al que desea colorear la coropleta. Aquí queríamos que la coropleta sombreara las regiones en función de la esperanza de vida ( lifeExp ). hover_name muestra los datos establecidos cuando se pasa el cursor sobre ellos. animation_frame se refiere al parámetro en el que se debe realizar la animación (principalmente, este parámetro son los datos de la serie temporal).

Ejemplo:

Python3

import plotly.express as px
  
  
gapminder = px.data.gapminder()
gapminder.head(15)
  
fig = px.choropleth(gapminder,
                    locations ="iso_alpha",
                    color ="lifeExp",
                    hover_name ="country", 
                    color_continuous_scale = px.colors.sequential.Plasma,
                    scope ="world",
                    animation_frame ="year")
fig.show()

Producción:

Esperanza de vida en los países de 1952 a 2007

alcance se refiere al área de alcance de la coropleta. Por ejemplo, si escribimos scope=”asia” , se despliega lo siguiente:

Esperanza de vida en Asia

Gráfico de barras de población

Ahora hagamos un gráfico de barras animado usando el mismo conjunto de datos usando la población como nuestros datos primarios en este caso. Sea la x de los datos el continente y la y la población y cuando se desplace el cursor sobre los nombres de los países deberían mostrarse. Así que fijemos el cursor en ‘country’ . Es importante especificar el rango, ya que ayuda a comprender la escala de los datos en los que estamos trabajando. El parámetro sobre el que se realiza la animación es, por supuesto, el año. 

Ejemplo:

Python3

import plotly.express as px
  
  
gapminder = px.data.gapminder()
gapminder.head(15)
  
fig = px.bar(gapminder, 
             x ="continent", 
             y ="pop",
             color ='lifeExp',
             animation_frame ='year',
             hover_name ='country', 
             range_y =[0, 4000000000])
fig.show()

Producción:

Población

PIB per cápita vs Contorno de densidad de esperanza de vida

La relación entre la esperanza de vida y el PIB per cápita a lo largo del tiempo es un componente importante para las estadísticas de datos gubernamentales o nacionales. Los gobiernos pueden (y han) utilizado esto para establecer la correlación entre los dos y esto explica por qué el aumento de la esperanza de vida también ha aumentado el PIB per cápita. El enfoque se puede visualizar utilizando un diagrama de contorno de densidad y un histograma. 

Ejemplo:

Python3

import plotly.express as px
  
  
gapminder = px.data.gapminder()
gapminder.head(15)
  
fig = px.density_contour(gapminder, 
                         x ="gdpPercap", 
                         y ="lifeExp", 
                         color ="continent", 
                         marginal_y ="histogram",
                         animation_frame ='year', 
                         animation_group ='country', 
                         range_y =[25, 100])
fig.show()

Producción:

Correlación entre esperanza de vida y PIB per cápita

Gráfico de dispersión del PIB per cápita frente a la esperanza de vida

El mismo enfoque se puede utilizar para un tipo diferente de gráfico, es decir, el gráfico de dispersión. El siguiente código muestra cómo se hace. facet_col se utiliza para dividir nuestro gráfico en subgráficos de datos de continentes, como se muestra a continuación. 

Python3

import plotly.express as px
  
  
gapminder = px.data.gapminder()
gapminder.head(15)
  
fig = px.scatter(
    gapminder, 
    x ="gdpPercap", 
    y ="lifeExp", 
    animation_frame ="year", 
    animation_group ="country",
    size ="pop", 
    color ="continent", 
    hover_name ="country", 
    facet_col ="continent",
    size_max = 45,
    range_y =[25, 90]
)
fig.show()

Producción:

Correlación entre esperanza de vida y PIB per cápita

Conclusión

Por lo tanto, en este artículo, hemos aprendido a codificar lo siguiente usando Plotly Express y Python.

  • Coropleta animada
  • Gráfico de barras animado
  • Gráfica de contorno de densidad animada
  • Gráfico de dispersión animado

El mismo conocimiento se puede ampliar para conjuntos de datos más complejos, para generar visualizaciones animadas y se puede usar con modelos de pronóstico para animar los datos pronosticados. 

Publicación traducida automáticamente

Artículo escrito por rahulhegde97 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *