Ниже приведен стандартный код. Когда я нажимаю на график, линия с заданным наклоном появляется в точке, где я щелкаю мышью. Я хочу изменить этот код, чтобы координаты 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()