当鼠标进入一个matplotlib.figure.axes时,会触发axes_enter事件,并传入参数event,event有一个属性event.inaxes,通过该属性遍历mplcanvas的self.axes数组,即self.axes.index(event.inaxes)可以得到该axes在绘图对象axes数组中的索引,利用这个索引访问预先记录的channel数组便可以得到当前鼠标所在axes所对应的tr,这样就可以做很多事情,也是对图像放大缩小的基础之一。
今天想在鼠标位置画一条竖线,查文档知道可以使用
from matplotlib.widgets import MultiCursor
MultiCursor这个类来很方便的绘制竖线光标。但是我使用时却未能成功,竖线依旧不出来。
multi = MultiCursor(self.fig.canvas, self.axes, color='r', lw=1 , horizOn=False,vertOn=True)
研究的半天没有进展,遂先放一放
明天先研究一下MultiCursor类来画竖线,如果依然不成功,考虑自己实现一个API来画竖线。除此之外,明天再研究一下鼠标滚轮事件放大当前图像的响应函数吧。