我正在做一个散点图,我想单击各个点来做某件事。这就像现有的示例代码。Matplotlib从多个系列中挑选事件
https://matplotlib.org/examples/event_handling/pick_event_demo.html
我已经实现了on_pick方法
def on_pick(event):
ind = event.ind
for i in ind:
...do something here with blue or red data...
但是,我坚持,因为我把多个系列(红色和蓝色)在同一个情节
fig, ax = plt.subplots()
ax.set_title('click on a point...')
line, = ax.plot(red_xs, red_ys, 'o', picker=5, color='red')
line, = ax.plot(blue_xs, blue_ys, 'o', picker=5, color='blue')
事件.ind是整数的集合。他们是一系列的索引。但是,似乎没有办法确定它们是哪个系列的索引。
必须有办法做到这一点。有谁知道这个诀窍?
谢谢 彼得
谢谢IOBE。我想我的问题并不清楚。我需要附加额外的元数据到事件,在我的情况下,如果熊猫数据框产生的X和Y的。我找到了一种方法来做到这一点。也许你知道更好的方法。 – user1902291
如果您的解决方案正常工作,那很好。我的观点是,你已经在'on_pick'函数内有'xdata'和'ydata'的数据。相反,如果您需要原始数据,则可以使用艺术家与原始数据的简单映射。我更新了答案,以表明如何做到这一点。 – ImportanceOfBeingErnest