Questo può essere un problema comune per i nuovi utenti di Matplotlib per disegnare linee verticali e orizzontali. Per comprendere questo problema, dovresti essere consapevole del fatto che esistono diversi sistemi di coordinate in Matplotlib .
I metodi axhline e axvline vengono utilizzati per disegnare linee sulle coordinate degli assi . In questo sistema di coordinate, la coordinata per il punto in basso a sinistra è (0,0), mentre la coordinata per il punto in alto a destra è (1,1), indipendentemente dall'intervallo di dati del grafico. Sia il parametro xminche si xmaxtrovano nell'intervallo [0,1].
D'altra parte, il metodo hlines e vlines vengono utilizzati per disegnare linee alla coordinata dei dati . L'intervallo per xmine xmaxè compreso nell'intervallo del limite dati dell'asse x.
Facciamo un esempio 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()
Produrrà la seguente trama:

Il valore per xmine xmaxè lo stesso per il metodo axhlinee hlines. Ma la lunghezza della linea prodotta è diversa.