Trabajar con **series de tiempo** y **fechas** en Matplotlib implica no solo graficar datos en función del tiempo, sino también manejar correctamente el formato de las fechas y aplicar personalizaciones. A continuación, te muestro cómo hacerlo paso a paso.
### 1. **Creación de una serie de tiempo**:
Primero, necesitas generar o tener acceso a datos que incluyan una columna de fechas y valores correspondientes.
#### Ejemplo de datos generados con Pandas:
import pandas as pd
import numpy as np
\# Crear un rango de fechas
dates = pd.date\_range(start="2024-01-01", periods=100, freq="D")
\# Crear datos aleatorios
values = np.random.randn(100).cumsum()
\# Crear DataFrame con fechas y valores
time\_series = pd.DataFrame({"Fecha": dates, "Valor": values})
### 2. **Graficar una serie de tiempo con Matplotlib**:
Para graficar los datos de una serie de tiempo, puedes usar plot\_date o simplemente plot si ya tienes los datos correctamente formateados.
#### Ejemplo de gráfico simple de serie de tiempo:
import matplotlib.pyplot as plt
\# Crear el gráfico
plt.figure(figsize=(10, 6))
plt.plot(time\_series\['Fecha'], time\_series\['Valor'], color='blue', marker='o', linestyle='-', label='Valores')
\# Añadir etiquetas y título
plt.title("Serie de Tiempo")
plt.xlabel("Fecha")
plt.ylabel("Valor")
plt.grid(True)
\# Mostrar leyenda y gráfico
plt.legend()
plt.show()
### 3. **Formato de fechas**:
Para mejorar la legibilidad del eje x (fechas), puedes usar el módulo dates de Matplotlib para personalizar el formato de las fechas.
#### Ejemplo de formato de fechas:
import matplotlib.dates as mdates
\# Crear el gráfico
plt.figure(figsize=(10, 6))
plt.plot(time\_series\['Fecha'], time\_series\['Valor'], color='green')
\# Formatear las fechas en el eje x
plt.gca().xaxis.set\_major\_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set\_major\_locator(mdates.MonthLocator())
\# Rotar las etiquetas de las fechas
plt.gcf().autofmt\_xdate()
\# Añadir etiquetas y título
plt.title("Serie de Tiempo con Formato de Fechas")
plt.xlabel("Fecha")
plt.ylabel("Valor")
plt.grid(True)
plt.show()
### 4. **Manejo de intervalos de fechas**:
A veces es necesario ajustar el rango de fechas mostrado en el gráfico. Esto se puede hacer utilizando plt.xlim() o configurando manualmente el rango de fechas.
#### Ejemplo de ajuste del rango de fechas:
\# Crear el gráfico
plt.figure(figsize=(10, 6))
plt.plot(time\_series\['Fecha'], time\_series\['Valor'], color='red')
\# Limitar las fechas mostradas
plt.xlim(pd.Timestamp("2024-01-01"), pd.Timestamp("2024-03-31"))
\# Añadir etiquetas y título
plt.title("Serie de Tiempo con Rango de Fechas Ajustado")
plt.xlabel("Fecha")
plt.ylabel("Valor")
plt.grid(True)
plt.show()
### 5. **Gráfico de barras para series de tiempo**:
También puedes representar una serie de tiempo con un gráfico de barras para resaltar los valores individuales.
#### Ejemplo de gráfico de barras:
plt.figure(figsize=(10, 6))
plt.bar(time\_series\['Fecha'], time\_series\['Valor'], color='purple')
\# Formatear las fechas en el eje x
plt.gca().xaxis.set\_major\_formatter(mdates.DateFormatter('%Y-%m-%d'))
plt.gca().xaxis.set\_major\_locator(mdates.WeekdayLocator())
\# Rotar las etiquetas de las fechas
plt.gcf().autofmt\_xdate()
\# Añadir etiquetas y título
plt.title("Serie de Tiempo - Gráfico de Barras")
plt.xlabel("Fecha")
plt.ylabel("Valor")
plt.grid(True)
plt.show()
### Resumen de puntos importantes:
- **Fechas**: Usa pd.date\_range() para generar rangos de fechas y manipula columnas de fechas en Pandas.
- **Formateo de Fechas**: Usa mdates.DateFormatter para ajustar el formato de fechas en el eje x.
- **Intervalos**: Limita el rango de fechas con plt.xlim() o ajustando el índice de las fechas.
- **Rotación de Fechas**: Usa plt.gcf().autofmt\_xdate() para rotar etiquetas si hay superposición.
Estas herramientas te permitirán manejar y visualizar series de tiempo de manera efectiva en Matplotlib.