Este puede ser un problema común para los nuevos usuarios de Matplotlib para dibujar líneas verticales y horizontales. Para comprender este problema, debe tener en cuenta que existen diferentes sistemas de coordenadas en Matplotlib .
Los métodos axhline y axvline se utilizan para dibujar líneas en las coordenadas de los ejes . En este sistema de coordenadas, la coordenada para el punto inferior izquierdo es (0,0), mientras que la coordenada para el punto superior derecho es (1,1), independientemente del rango de datos de su gráfico. Tanto el parámetro xmin
como xmax
están en el rango [0,1].
Por otro lado, los métodos hlines y vlines se usan para dibujar líneas en la coordenada de datos . El rango para xmin
y xmax
están en el rango de límite de datos del eje x.
Tomemos un ejemplo concreto,
import matplotlib.pyplot as plt
import numpy as np
x = np.linspace(0, 5, 100)
y = np.sin(x)
fig, ax = plt.subplots()
ax.plot(x, y)
ax.axhline(y=0.5, xmin=0.0, xmax=1.0, color='r')
ax.hlines(y=0.6, xmin=0.0, xmax=1.0, color='b')
plt.show()
Producirá la siguiente trama:
El valor de xmin
y xmax
son los mismos para el método axhline
y hlines
. Pero la longitud de la línea producida es diferente.