Вертикальные и горизонтальные линии в matplotlib - программирование
Подтвердить что ты не робот

Вертикальные и горизонтальные линии в matplotlib

Я не совсем понимаю, почему я не могу создать горизонтальные и вертикальные линии в указанных пределах. Я хотел бы связать данные этим полем. Однако стороны, похоже, не соответствуют моим инструкциям. Почему это?

# CREATING A BOUNDING BOX
# BOTTOM HORIZONTAL
plt.axhline(y=.4, xmin=0.25, xmax=0.402, linewidth=2, color = 'k')
# RIGHT VERTICAL
plt.axvline(x=0.402, ymin=0.4, ymax = 0.615, linewidth=2, color='k')
# LEFT VERTICAL
plt.axvline(x=0.1, ymin=0.58, ymax = 0.79, linewidth=2, color='k')
plt.show()

enter image description here

4b9b3361

Ответ 1

Функции pyplot, которые вы вызываете, axhline() и axvline() нарисовать линии, которые охватывают часть диапазона осей, независимо от координат. Параметры xmin или ymin используют значение 0.0 в качестве минимума оси и 1.0 в качестве максимального значения оси.

Вместо этого используйте plt.plot((x1, x2), (y1, y2), 'k-'), чтобы нарисовать линию от точки (x1, y1) до точки (x2, y2) в цвете k. См. pyplot.plot.

Ответ 2

Если вы хотите добавить ограничивающий прямоугольник, используйте прямоугольник:

ax = plt.gca()
r = matplotlib.patches.Rectangle((.5, .5), .25, .1, fill=False)
ax.add_artist(r)

Rectangle doc