Matplotlib es una potente biblioteca de Python para crear visualizaciones. Agregar líneas horizontales y verticales a sus gráficos puede mejorar significativamente la claridad al resaltar puntos de datos, umbrales o regiones de interés. Este artículo muestra dos métodos efectivos para lograr esto: usando axhline
/axvline
y hlines
/vlines
.
Tabla de contenido
Usando axhline
y axvline
Las funciones axhline
y axvline
ofrecen una manera sencilla de agregar líneas horizontales y verticales individuales, respectivamente, directamente a un objeto de ejes Matplotlib. Son ideales cuando una línea necesita abarcar toda la gráfica.
import matplotlib.pyplot as plt
import numpy as np
# Datos de muestra
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Crear la gráfica
fig, ax = plt.subplots()
ax.plot(x, y)
# Agregar una línea horizontal en y = 0.5
ax.axhline(y=0.5, color='r', linestyle='--', linewidth=2)
# Agregar una línea vertical en x = 5
ax.axvline(x=5, color='g', linestyle='-', linewidth=1)
# Personalizar apariencia (opcional)
ax.set_xlabel("Eje X")
ax.set_ylabel("Eje Y")
ax.set_title("Líneas horizontales y verticales con axhline/axvline")
plt.show()
Este código genera una onda sinusoidal y agrega una línea horizontal roja discontinua en y = 0.5
y una línea vertical verde continua en x = 5
. Puede personalizar las propiedades de la línea usando parámetros como color
, linestyle
, linewidth
, alpha
(transparencia) y label
(para leyendas).
Usando hlines
y vlines
Para un mayor control, particularmente cuando se grafican varias líneas o líneas que abarcan solo una parte de los ejes, hlines
y vlines
proporcionan mayor flexibilidad. Permiten especificar las coordenadas y para las líneas horizontales y las coordenadas x para las líneas verticales individualmente.
import matplotlib.pyplot as plt
import numpy as np
# Datos de muestra
x = np.linspace(0, 10, 100)
y = np.sin(x)
# Crear la gráfica
fig, ax = plt.subplots()
ax.plot(x, y)
# Agregar múltiples líneas horizontales
ax.hlines(y=[0, 0.5, 1], xmin=0, xmax=10, colors=['b', 'r', 'g'], linestyles=['-', '--', ':'])
# Agregar múltiples líneas verticales
ax.vlines(x=[2, 7], ymin=0, ymax=1, colors=['k', 'm'], linewidths=[2, 1])
# Personalizar apariencia (opcional)
ax.set_xlabel("Eje X")
ax.set_ylabel("Eje Y")
ax.set_title("Líneas horizontales y verticales con hlines/vlines")
plt.show()
Este ejemplo agrega tres líneas horizontales en diferentes valores de y en todo el rango de x y dos líneas verticales en coordenadas x específicas, que se extienden desde ymin=0
hasta ymax=1
. Se utilizan listas para múltiples especificaciones de línea. Observe el uso de linewidths
para controlar el grosor de la línea.
Conclusión
Tanto axhline
/axvline
como hlines
/vlines
son herramientas útiles para mejorar las gráficas de Matplotlib. axhline
/axvline
son más sencillas para líneas individuales que abarcan toda la gráfica, mientras que hlines
/vlines
ofrecen mayor flexibilidad para múltiples líneas o líneas con puntos de inicio y fin específicos. La mejor opción depende de sus necesidades de visualización. Recuerde adaptar los estilos y colores de las líneas para una claridad óptima.