Jupyter notebook 将鼠标悬停在图像上时,高亮显示散点图中的点

Jupyter notebook 将鼠标悬停在图像上时,高亮显示散点图中的点,jupyter-notebook,dom-events,ipywidgets,bqplot,Jupyter Notebook,Dom Events,Ipywidgets,Bqplot,我尝试将图像网格链接到散点图,以便在相应图像上悬停时高亮显示右侧散点图点 问题是,当以迭代方式注册DOM事件时,它们似乎会被覆盖,结果只有散点图的最后一点高亮显示。如何为每个图像注册独立事件 参见下面的可复制示例 我找到了一种方法,使用functools.partial import functools # Event handler def handle_event(idx, event): highlighted_point.x = [data[idx]['x']] hi

我尝试将图像网格链接到散点图,以便在相应图像上悬停时高亮显示右侧散点图点

问题是,当以迭代方式注册DOM事件时,它们似乎会被覆盖,结果只有散点图的最后一点高亮显示。如何为每个图像注册独立事件

参见下面的可复制示例


我找到了一种方法,使用
functools.partial

import functools

# Event handler
def handle_event(idx, event):
    highlighted_point.x = [data[idx]['x']]
    highlighted_point.y = [data[idx]['y']]

# Add DOM events to images
img_list = []
for idx, d in enumerate(data):
    img = d['image']
    event = Event(source=img, watched_events=['mouseenter'])
    event.on_dom_event(functools.partial(handle_event, idx))
    img_list.append(img)
images = ipw.HBox(img_list)
ipw.VBox([fig, images])
import functools

# Event handler
def handle_event(idx, event):
    highlighted_point.x = [data[idx]['x']]
    highlighted_point.y = [data[idx]['y']]

# Add DOM events to images
img_list = []
for idx, d in enumerate(data):
    img = d['image']
    event = Event(source=img, watched_events=['mouseenter'])
    event.on_dom_event(functools.partial(handle_event, idx))
    img_list.append(img)
images = ipw.HBox(img_list)
ipw.VBox([fig, images])