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 xmincomo xmaxestá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 xminy xmaxestá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 xminy xmaxson los mismos para el método axhliney hlines. Pero la longitud de la línea producida es diferente.