Visualización de Series Temporales con Python: Matplotlib y Pandas

Clase 27 de 32Curso de Python para Ciencia de Datos

Resumen

¿Cómo se visualizan datos temporales en Python?

La capacidad de visualizar datos temporales es fundamental para cualquier analista que desee identificar patrones, tendencias o anomalías. A través de gráficos de líneas es posible obtener una comprensión clara de la evolución de los datos sobre el tiempo. En este artículo, exploraremos cómo utilizar librerías populares de Python como NumPy, Pandas, y Matplotlib para crear representaciones visuales efectivas de series temporales.

¿Qué herramientas son necesarias para la visualización de series temporales?

Para empezar con la visualización de datos temporales, es conveniente tener familiaridad con algunas herramientas de Python:

  • NumPy: Para realizar operaciones numéricas eficientes.
  • Pandas: Para gestionar datos en forma de tablas y series temporales.
  • Matplotlib: La herramienta por excelencia para crear gráficos en Python.

Este conjunto de herramientas permite generar, manipular y visualizar fácilmente datos temporales.

¿Cómo se crea un gráfico de líneas básico?

El camino hacia una buena visualización comienza con la creación de un conjunto de datos y un gráfico de líneas básico. Vamos a crear un ejemplo simple utilizando ficción de ventas:

Primero, generamos un conjunto de fechas y valores aleatorios para simular los datos de ventas a lo largo del tiempo:

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt

# Genera fechas y valores aleatorios
dates = pd.date_range(start='2023-01-01', periods=100, freq='D')
values = np.random.randint(1000, 5000, size=100)

# Crear DataFrame
data = pd.DataFrame({'Fecha': dates, 'Ventas': values})

Con esto en mano, podemos comenzar a graficar:

# Crear gráfico de líneas
plt.figure(figsize=(12, 6))
plt.plot(data['Fecha'], data['Ventas'], color='g')
plt.xticks(rotation=45)
plt.title('Serie Temporal de Ventas')
plt.xlabel('Fecha')
plt.ylabel('Ventas')
plt.show()

¿Cómo se personaliza el formato de las fechas?

Para mejorar la legibilidad del gráfico, es necesario ajustar el formato de las fechas. Podemos hacerlo rotando los textos o dándole un formato específico para que las fechas se muestren en meses de forma escrita:

import matplotlib.dates as mdates

# Ajustar formato de fechas
plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%b %Y'))
plt.xticks(rotation=45)

En este caso, '%b %Y' se utiliza para mostrar el mes en forma abreviada junto al año.

¿Cómo se representan casos de uso reales?

Una vez que hemos cubierto lo básico, podemos aplicar estos conceptos a diferentes contextos más avanzados para mostrar ventas mensuales o analizar patrones estacionales, por ejemplo. Aquí te dejo un ejemplo focalizado en ventas mensuales:

# Generación de datos mensuales
dates = pd.date_range(start='2023-01-01', periods=12, freq='M')
sales = np.random.randint(1000, 5000, size=12)

# Crear DataFrame mensual
monthly_data = pd.DataFrame({'Fecha': dates, 'Ventas': sales})

# Crear gráfico con leyenda y estilo personalizado
plt.figure(figsize=(10, 5))
plt.plot(monthly_data['Fecha'], monthly_data['Ventas'], marker='o', linestyle='-', label='Ventas Mensuales')
plt.xticks(rotation=45)
plt.title('Análisis de Ventas Mensuales')
plt.xlabel('Fecha')
plt.ylabel('Ventas')
plt.legend()
plt.tight_layout()
plt.show()

Esta práctica no sólo cohesiona el entendimiento de las series temporales, sino que también fortalece las habilidades de análisis de datos de cualquiera que busque predecir tendencias futuras. Recuerda interactuar con tus propias variables y configuraciones para maximizar el aprendizaje y la adaptación según tus necesidades analíticas. ¡Sigue practicando y explorando el poderoso mundo de las series temporales!