невозможно перетащить line2D до крайнего конца по оси x фигуры, и возникает проблема с получением точных начальных и конечных значений - PullRequest
0 голосов
/ 16 июня 2020

Я рисую две вертикальные линии на рисунке, чтобы выбрать сегмент между ними, используя matplotlib. Я использовал функцию Line2D, чтобы нарисовать эти вертикальные линии. Эти линии можно перетаскивать по оси x. Теперь моя проблема в том, что я не могу сдвинуть его до крайних точек по оси x, например 0,00 и 10,00. enter image description here

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

...