Python

Visualización de datos con Pyjanitor y Matplotlib o Seaborn: Potenciando el análisis visual

La visualización de datos es una parte clave del análisis de datos y comunicación de los resultados. Facilitando la comprensión de patrones, identificación de tendencias y comunicación de hallazgos de una manera más sencilla y efectiva que solamente estadísticas. En esta cuarta y última entrega la serie dedicada a Pyjanitor se explicará cómo se puede combinar con bibliotecas como Matplotlib y Seaborn para mejorar los análisis visuales. Analizando las posibilidades de integración para la visualización de datos con Pyjanitor y Matplotlib o Seaborn.

En esta entrada es parte de una serie sobre la biblioteca Pyjanitor, el resto de las publicaciones son:

  1. Introducción a Pyjanitor
  2. Limpieza de datos con Pyjanitor
  3. Transformación de datos con Pyjanitor
  4. Visualización de datos con Pyjanitor y Matplotlib o Seaborn

Importación de datos de ejemplo

Antes de comenzar con los ejemplos de visualización de datos con Pyjanitor y Matplotlib o Seaborn es necesario cargar un conjunto de datos. En este caso se usar el conjunto de datos “planets” de Seaborn. Este conjunto es una compilación de información sobre el descubrimiento de exoplanetas fuera de nuestro sistema solar. Incluyendo detalles sobre los métodos de descubrimiento, el año de descubrimiento, el período orbital, la masa, el radio y la confirmación de detección de cada exoplaneta. Para importar este conjunto de datos solamente se debe importar Seaborn y llamar a la función load_dataset() como se muestra en el siguiente código.

import seaborn as sns

# Cargar el conjunto de datos "planets" de Seaborn
planets = sns.load_dataset("planets")

# Visualizar los primeros registros del conjunto de datos
print(planets.head())
            method  number  orbital_period   mass  distance  year
0 Radial Velocity 1 269.300 7.10 77.40 2006
1 Radial Velocity 1 874.774 2.21 56.95 2008
2 Radial Velocity 1 763.000 2.60 19.84 2011
3 Radial Velocity 1 326.030 19.40 110.62 2007
4 Radial Velocity 1 516.220 10.50 119.47 2009

Una vez hecho esto se puede usar Pyjanitor para resumir datos con los que crear gráficas que pueden aportar información de interés.

Número de descubrimientos de planetas por año

Un dato que puede ser de interés en esta gráfica es cómo ha evolucionado el descubrimiento de exoplanetas con el tiempo. Resultado que requiere un análisis inicial que se puede realizar fácilmente con Pyjanitor. Para ello se puede usar el método groupby() para agrupar la información por contabilizar el número de descubrimientos con size(). Una vez realizado el análisis, se puede usar Seaborn para visualizar el número de descubrimientos de planetas por año en un gráfico de barras.

import matplotlib.pyplot as plt
import janitor

# Contar el número de planetas descubiertos por año
planet_discoveries_per_year = (
    planets
    .groupby('year')
    .size()
    .reset_index(name='num_discoveries')
)

# Crear un gráfico de barras para visualizar el número de descubrimientos de planetas por año
plt.figure(figsize=(10, 6))
sns.barplot(data=planet_discoveries_per_year, x='year', y='num_discoveries', color='skyblue')
plt.xlabel('Año')
plt.ylabel('Número de Descubrimientos de Planetas')
plt.title('Número de Descubrimientos de Planetas por Año')
plt.xticks(rotation=45)
plt.grid(True, axis='y')
plt.show()
Número de descubrimientos de planetas por año

Obteniendo como resultado una gráfica que permite comprender cómo ha evolucionado el descubrimiento de exoplanetas a lo largo del tiempo.

Evolución de descubrimientos de planetas por año según el método de detección

Otro aspecto interesante del conjunto de datos “planets” es la diversidad de métodos utilizados para descubrir exoplanetas. Los métodos de Pyjanitor permiten investigar cómo ha evolucionado la detección de exoplanetas a lo largo de los años en función del método de detección. Lo que se consigue contando el número de descubrimientos de planetas por año y método de detección.

# Contar el número de descubrimientos de planetas por año y método de detección utilizando Pyjanitor
discoveries_per_year_method = (
    planets
    .groupby(['year', 'method'])
    .size()
    .reset_index(name='num_discoveries')
)

Una vez que se tienen agrupados los datos por año y método de detección, es posible visualizar la evolución de los descubrimientos de exoplanetas a lo largo del tiempo mediante un gráfico de líneas o un gráfico de barras apiladas. A continuación, se muestra cómo crear un gráfico de líneas con los datos.

# Crear un gráfico de líneas para visualizar la evolución de los descubrimientos por método de detección
plt.figure(figsize=(12, 8))
sns.lineplot(data=discoveries_per_year_method, x='year', y='num_discoveries', hue='method', marker='o')
plt.xlabel('Año')
plt.ylabel('Número de Descubrimientos de Planetas')
plt.title('Evolución de Descubrimientos de Planetas por Año según el Método de Detección')
plt.xticks(rotation=45)
plt.legend(title='Método de Detección')
plt.grid(True)
plt.show()
Evolución de los descubrimientos de planetas por año según el método de detección

Este gráfico proporciona una visión general de cómo ha evolucionado la detección de exoplanetas a lo largo de los años. Mostrando cuando aparece cada método y como aumenta la aportación de cada uno con el tiempo. Lo primero que se puede ver es que las mayores aportaciones han sido por los métodos de “Radial Velocity” y “Transit”.

Conclusiones

En esta última entrada, se han visto algunas de las opciones que existen para la visualización de datos con Pyjanitor y Matplotlib o Seaborn. Para lo que se ha usado el conjunto de datos “planets” de Seaborn. Pyjanitor permite realizar análisis complejos que posteriormente se pueden usar para dibujar gráficos con Matplotlib o Seaborn que ayudan a comprender mejor los patrones de datos.

Imagen de Ryan McGuire en Pixabay

¿Te ha parecido de utilidad el contenido?

Daniel Rodríguez

Share
Published by
Daniel Rodríguez

Recent Posts

Data Lake y Data Warehouse: diferencias, usos y cómo se complementan en la era del dato

En la era del dato, las organizaciones se enfrentan al reto de gestionar volúmenes masivos…

2 días ago

Documentar tu API de Express con TypeScript usando OpenAPI (Swagger)

En la serie Creación de una API REST con Express y TypeScript construimos una API…

4 días ago

Curiosidad: El sesgo de supervivencia, o por qué prestar atención sólo a los que “llegaron” puede engañarte

Durante la Segunda Guerra Mundial, la Fuerza Aérea de Estados Unidos quería reforzar sus aviones…

1 semana ago

Cómo abrir una ventana de Chrome con tamaño y posición específicos desde la línea de comandos en Windows

En muchas situaciones —ya sea para grabar un tutorial, tomar capturas de pantalla profesionales, probar…

2 semanas ago

La Paradoja del Cumpleaños, o por qué no es tan raro compartir fecha de nacimiento

Imagínate en una sala con un grupo de personas, por ejemplo, en una oficina, un…

2 semanas ago

Programador de tareas de Windows: Guía definitiva para automatizar tu trabajo (BAT, PowerShell y Python)

En el trabajo diario con ordenadores, es común encontrarse con tareas repetitivas: realizar copias de…

3 semanas ago

This website uses cookies.