Esse pode ser um problema comum para novos usuários do Matplotlib para desenhar linhas verticais e horizontais. Para entender esse problema, você deve estar ciente de que existem diferentes sistemas de coordenadas no Matplotlib .
O método axhline e axvline são usados para desenhar linhas nas coordenadas dos eixos . Nesse sistema de coordenadas, a coordenada para o ponto inferior esquerdo é (0,0), enquanto a coordenada para o ponto superior direito é (1,1), independentemente do intervalo de dados do seu gráfico. O parâmetro xmin
e xmax
está no intervalo [0,1].
Por outro lado, o método hlines e vlines são usados para desenhar linhas na coordenada de dados . O intervalo para xmin
e xmax
está no intervalo de dados limite do eixo x.
Vamos dar um exemplo 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()
Ele produzirá o seguinte gráfico:

O valor para xmin
e xmax
é o mesmo para o método axhline
e hlines
. Mas o comprimento da linha produzida é diferente.