Це може бути поширеною проблемою для нових користувачів Matplotlib малювати вертикальні та горизонтальні лінії. Щоб зрозуміти цю проблему, вам слід знати, що в Matplotlib існують різні системи координат .
Метод axhline та axvline використовується для малювання ліній на координатах осей . У цій системі координат координата для нижньої лівої точки дорівнює (0,0), тоді як координата для верхньої правої точки дорівнює (1,1), незалежно від діапазону даних вашої ділянки. Як параметр, так xmin
і xmax
знаходяться в діапазоні [0,1].
З іншого боку, методи hlines та vlines використовуються для малювання ліній у координаті даних . Діапазон для xmin
та xmax
знаходяться в діапазоні меж даних по осі x.
Візьмемо конкретний приклад,
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()
Він створить наступний сюжет:
Значення xmin
і xmax
є однаковим для axhline
і hlines
методи. Але довжина виробленої лінії різна.