python matplotlib: Как я могу интерактивно изменить текст в графике - PullRequest
0 голосов
/ 05 мая 2020

Ниже приведен стандартный код. Когда я нажимаю на график, линия с заданным наклоном появляется в точке, где я щелкаю мышью. Я хочу изменить этот код, чтобы координаты x, y точки и номер кнопки отображались на графике и обновлялись каждый раз, когда я щелкаю.

from matplotlib import pyplot as plt


class LineBuilder:
    def __init__(self, line, slope):
        self.line = line
        self.xs = list(line.get_xdata())
        self.ys = list(line.get_ydata())
        self.slope = slope
        self.cid = line.figure.canvas.mpl_connect('button_press_event', self)

    def __call__(self, event):
        print('click', event)
        if event.inaxes!=self.line.axes: return

        self.xs.clear()
        self.ys.clear()
        x=event.xdata
        x1=(event.xdata)+1
        y=event.ydata

        y1=slope*(x1-x)+y

        self.xs.append(event.xdata)
        self.ys.append(event.ydata)

        self.xs.append(x1)
        self.ys.append(y1)

        self.line.set_data(self.xs, self.ys)
        self.line.figure.canvas.draw()

fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('click to build line segment at a point')
ax.set_xlim(0,10)
ax.set_ylim(0,10)

slope=0.5 
line, = ax.plot([0], [0])  # empty line
linebuilder = LineBuilder(line,slope)

plt.show()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...