| name | 事件名 |
| canvas | FigureCanvas 实例生成事件 |
| guiEvent | 触发 Matplotlib 事件的GUI事件 |
我们以事件处理中最常见的事件 按键按下/释放事件
和 鼠标按下/释放/移动事件
为例,利用事件属性。 处理这些事件的 KeyEvent
和 MouseEvent
类都是从 LocationEvent
派生的,它具有以下属性:
| 属性名 | 含义 |
| — | — |
| x,y | 鼠标距画布左下角的距离(以像素为单位) |
| inaxes | 鼠标所在的 Axes 实例(如果有) |
| xdata, ydata | 鼠标在数据坐标中的位置 |
为了对比属性 x
、y
和 xdata
、ydata
的区别,使用以下程序进行说明,此程序会在鼠标单击时,在画布上显示鼠标事件的 x
、y
、xdata
、和 ydata
属性:
from matplotlib import pyplot as plt
class TextBuilder:
def init(self, line):
self.text = text
self.content = self.text.get_text()
self.cid = text.figure.canvas.mpl_connect(‘button_press_event’, self)
def call(self, event):
print(‘click’, event)
if event.inaxes!=self.text.axes: return
self.text.set_x(event.xdata)
self.text.set_y(event.ydata)
self.text.set_text(‘x:{},y:{},xdata:{:.2f},ydata:{:.2f}’.format(event.x,event.y,event.xdata,event.ydata))
self.text.figure.canvas.draw()
fig, ax = plt.subplots()
ax.set_title(‘click to show event attribute’)
text = plt.text([0], [0], ‘’)
textbuilder = TextBuilder(text)
plt.show()
运行程序后,当在画布上单击时,会在鼠标点击处,绘制出事件的 x
、y
、xdata
、和 ydata
属性值: