Może to być częstym problemem dla nowych użytkowników Matplotlib przy rysowaniu pionowych i poziomych linii. Aby zrozumieć ten problem, należy mieć świadomość, że w Matplotlib istnieją różne układy współrzędnych .
Metody axhline i axvline służą do rysowania linii w współrzędnych osi . W tym układzie współrzędnych współrzędna lewego dolnego punktu to (0,0), podczas gdy współrzędna prawego górnego punktu to (1,1), niezależnie od zakresu danych na wykresie. Zarówno parametr, jak xmin
i xmax
mieszczą się w zakresie [0,1].
Z drugiej strony linie i linie metody są używane do rysowania linii we współrzędnej danych . Zakresy xmin
i xmax
mieszczą się w zakresie limitu danych osi x.
Weźmy konkretny przykład,
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()
Stworzy następujący wykres:
Wartości xmin
i xmax
są takie same dla metody axhline
i hlines
. Ale długość produkowanej linii jest inna.