Я рисую две вертикальные линии на рисунке, чтобы выбрать сегмент между ними, используя matplotlib. Я использовал функцию Line2D, чтобы нарисовать эти вертикальные линии. Эти линии можно перетаскивать по оси x. Теперь моя проблема в том, что я не могу сдвинуть его до крайних точек по оси x, например 0,00 и 10,00.
def clickonline_a(self, event): #for selecting the line
if event.artist == self.line_a:
self.foll_a = self.c_a.mpl_connect("motion_notify_event", self.followmouse_a)
self.rel_a = self.c_a.mpl_connect("button_release_event", self.releaseonclick_a)
def followmouse_a(self, event): # for dragging the line
if event.inaxes is None:
return
if event.button != 1:
return
self.line_a.set_xdata(event.xdata)
self.c_a.draw_idle()
def releaseonclick_a(self, event): #for releasing the line
self.a_point = self.line_a.get_xdata()
self.c_a.mpl_disconnect(self.rel_a)
self.c_a.mpl_disconnect(self.foll_a)
В функции выпуска значение, которое я получаю для self.a_point как 0,0067xx, и поскольку я использовал формат печати% 5.2f, поэтому он дает мне 0,01. Значение, которое я получаю для self.b_point, равно 9.9899xx, поэтому он напечатает 9.99 из-за формата% 5.2f. здесь я не могу понять, почему a_point и b_point не касаются значения 0,0000 и 10,00 на оси x