Вертикальные и горизонтальные линии в 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]()
Ответы
Ответ 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