Cómo crear un gráfico de series de tiempo con Matplotlib en Python
Published on
En este tutorial, aprenderá cómo crear un gráfico de series de tiempo con Matplotlib en Python. Ya sea que esté visualizando precios de acciones, tráfico web u otros datos dependientes del tiempo, Matplotlib es una herramienta poderosa para la visualización y análisis de datos. Le mostraremos cómo personalizar las marcas y etiquetas de los ejes, trabajar con fechas en el eje horizontal y agregar marcas menores para una vista más detallada de sus datos.
¿Desea crear rápidamente visualizaciones de datos en Python?
PyGWalker es un proyecto de Python de código abierto que puede ayudar a acelerar el flujo de trabajo de análisis y visualización de datos directamente dentro de entornos basados en Jupyter Notebook.
PyGWalker (opens in a new tab) convierte su DataFrame de Pandas (o DataFrame de Polars) en una interfaz de usuario visual donde puede arrastrar y soltar variables para crear gráficos fácilmente. Simplemente use el siguiente código:
pip install pygwalker
import pygwalker as pyg
gwalker = pyg.walk(df)
Puede ejecutar PyGWalker ahora mismo con estas notebooks en línea:
¡Y no olvide darle una ⭐️ en GitHub!
¿Qué es Matplotlib y para qué se utiliza?
Matplotlib es una biblioteca de visualización de datos para Python. Proporciona una amplia gama de herramientas para crear visualizaciones estáticas, animadas e interactivas en Python. Matplotlib se utiliza ampliamente en academias, industrias y gobiernos para crear gráficos y visualizaciones.
¿Cómo puedo personalizar las marcas y etiquetas de los ejes en un gráfico de series de tiempo con Matplotlib?
Puede personalizar las marcas y etiquetas de los ejes en un gráfico de series de tiempo con Matplotlib utilizando los métodos set_xticks()
y set_xticklabels()
. Estos métodos le permiten especificar la ubicación y el formato de las marcas y etiquetas de las marcas en el eje horizontal.
import matplotlib.pyplot as plt
import pandas as pd
# Cargar datos
data = pd.read_csv("data.csv")
# Convertir columna de fecha a datetime
data["date"] = pd.to_datetime(data["date"])
# Crear gráfico
fig, ax = plt.subplots()
# Establecer ubicaciones y etiquetas de las marcas
ax.set_xticks(data["date"])
ax.set_xticklabels(data["date"].dt.strftime("%Y-%m"))
# Graficar datos
ax.plot(data["date"], data["value"])
# Mostrar gráfico
plt.show()
En este ejemplo, primero cargamos los datos utilizando la biblioteca Pandas y convertimos la columna de fecha a un formato de fecha y hora (datetime
). Luego, creamos el objeto de gráfico utilizando Matplotlib y establecemos las ubicaciones y etiquetas de las marcas utilizando los métodos set_xticks()
y set_xticklabels()
. Finalmente, graficamos los datos y mostramos el gráfico utilizando el método show()
.
¿Cómo puedo trabajar con fechas en el eje horizontal en Matplotlib?
Puede trabajar con fechas en el eje horizontal en Matplotlib utilizando la función date2num()
del módulo matplotlib.dates
. Esta función convierte un objeto de fecha en un número de punto flotante, que se puede utilizar para graficar fechas en el eje horizontal.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
# Cargar datos
data = pd.read_csv("data.csv")
# Convertir columna de fecha a formato datetime y date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
# Crear gráfico
fig, ax = plt.subplots()
# Graficar datos
ax.plot_date(data["date"], data["value"], linestyle="solid")
# Mostrar gráfico
plt.show()
En este ejemplo, primero cargamos los datos utilizando la biblioteca Pandas y convertimos la columna de fecha a un formato de fecha y hora (datetime
). Luego, utilizamos la función date2num()
para convertir la columna de fecha en un formato que se puede graficar con Matplotlib. Finalmente, graficamos los datos utilizando el método plot_date()
y mostramos el gráfico utilizando el método show()
.
¿Qué es un MonthLocator y cómo se utiliza en Matplotlib?
Un MonthLocator
es una clase de Matplotlib que se utiliza para especificar las ubicaciones de las marcas de las marcas en el eje horizontal de un gráfico de series de tiempo. La clase MonthLocator
se puede utilizar para generar ubicaciones de marcas en intervalos regulares de meses.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
# Cargar datos
data = pd.read_csv("data.csv")
# Convertir columna de fecha a formato datetime y date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
# Crear gráfico
fig, ax = plt.subplots()
# Establecer ubicación de las marcas
ax.xaxis.set_major_locator(mdates.MonthLocator())
# Establecer formateador de las marcas
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
# Graficar los datos
ax.plot_date(data["date"], data["value"], linestyle="solid")
# Mostrar el gráfico
plt.show()
En este ejemplo, primero cargamos los datos utilizando la biblioteca Pandas, convertimos la columna de fechas a un formato de fecha y la convertimos al formato que se puede graficar usando Matplotlib. Luego, creamos el objeto de gráfico y configuramos el localizador de ticks utilizando el método set_major_locator()
para generar ubicaciones de ticks en intervalos regulares de meses. Finalmente, graficamos los datos y mostramos el gráfico utilizando el método show()
.
¿Cómo puedo añadir marcas de tick menores a un gráfico de series de tiempo con Matplotlib?
Puedes añadir marcas de tick menores a un gráfico de series de tiempo con Matplotlib utilizando el método set_minor_locator()
del objeto xaxis
. Este método te permite especificar la ubicación de las marcas de tick menores en el eje horizontal.
import matplotlib.pyplot as plt
import matplotlib.dates as mdates
import pandas as pd
# Cargar los datos
data = pd.read_csv("data.csv")
# Convertir la columna de fechas a formato datetime y date2num
data["date"] = pd.to_datetime(data["date"]).apply(mdates.date2num)
# Crear el gráfico
fig, ax = plt.subplots()
# Configurar el localizador de ticks
ax.xaxis.set_major_locator(mdates.MonthLocator())
# Configurar el formateador de ticks
ax.xaxis.set_major_formatter(mdates.DateFormatter("%Y-%m"))
# Configurar el localizador de ticks menores
ax.xaxis.set_minor_locator(mdates.MonthLocator(bymonthday=15))
# Graficar los datos
ax.plot_date(data["date"], data["value"], linestyle="solid")
# Mostrar el gráfico
plt.show()
En este ejemplo, primero cargamos los datos utilizando la biblioteca Pandas y convertimos la columna de fechas a un formato datetime. Luego, creamos el objeto de gráfico y configuramos el localizador y formateador de ticks como lo hicimos anteriormente. Finalmente, configuramos el localizador de ticks menores utilizando el método set_minor_locator()
para generar ubicaciones de ticks cada 15 días de cada mes. Graficamos los datos y mostramos el gráfico utilizando el método show()
.
Conclusión
Matplotlib es una herramienta poderosa para crear gráficos de series de tiempo en Python. Con su amplia gama de opciones de personalización, puedes crear visualizaciones hermosas e informativas de tus datos dependientes del tiempo. Ya sea que estés comenzando con la visualización de datos o seas un analista de datos experimentado, Matplotlib es una adición valiosa a tu conjunto de herramientas.
Otros tutoriales de Python: