我正在尝试将运动事件与seaborn热图关联起来,这样当我将鼠标悬停在单元格中时,此单元格会在边框中突出显示。到目前为止,我设法通过将motion_notify_event
与画布相关联来实现:
import matplotlib.patches as mpatches
self.canvash.mpl_connect('motion_notify_event', self.onMotion)
(...)
def onMotion(self,event):
if not event.inaxes:
return
xint = int(event.xdata)
yint = int(event.ydata)
self.axh.add_patch(mpatches.Rectangle((xint, yint),1,1,fill=False,edgecolor='blue',linewidth=0.5))
self.canvash.draw()
这很有效,当我将鼠标悬停在鼠标上时,细胞会突出显示。问题是所有单元格都会突出显示,结果如下:
我只想在移动时突出显示鼠标下的单元格,以便只有一个是活动的。
我该怎么做?
答案 0 :(得分:0)
我能够找到一个解决方案,多亏了Paul H.我只需要保存补丁然后删除它就可以了,这是解决方案:
def onMotion(self,event):
if not event.inaxes:
return
xint = int(event.xdata)
yint = int(event.ydata)
self.rect = mpatches.Rectangle((xint, yint),1,1,fill=False,linestyle='dashed', edgecolor='red',linewidth=2.0)
self.axh.add_patch(self.rect)
self.canvash.draw()
self.rect.remove()