Je suis en train d'insérer l'exemple de sélecteur d'événement indiqué dans cette documentation python, dans une classesélecteur d'événement Matplotlib - A l'intérieur d'une classe
http://matplotlib.org/users/event_handling.html
Le code va comme ceci
import numpy as np
import matplotlib.pyplot as plt
class Test:
def __init__(self,line):
self.line = line
self.cidpress = self.line.figure.canvas.mpl_connect('button_press_event', self.onpick)
def onpick(self, event):
thisline = event.artist
xdata = thisline.get_xdata()
ydata = thisline.get_ydata()
ind = event.ind
points = tuple(zip(xdata[ind], ydata[ind]))
print('onpick points:', points)
fig = plt.figure()
ax = fig.add_subplot(111)
ax.set_title('click on points')
line, = ax.plot(np.random.rand(10), 'o', picker=5) # 5 points tolerance
a = Test(line)
plt.show()
Mais Im obtenir cette erreur lorsque la souris est cliquée sur un point.
AttributeError: 'MouseEvent' object has no attribute 'artist'
Quelle pourrait être la raison de ce problème? Lorsqu'ils ne sont pas à l'intérieur de la classe le code fonctionne parfaitement
merci beaucoup
Merci @ImportanceOfBeingErnest. Fonctionne comme un charme. Je ne peux pas croire que j'ai passé toute la journée là-dessus. – ABCD