Python-Matplotlib可视化(番外篇)——Matplotlib中的事件处理详解与实战

本文详细介绍了如何在Matplotlib中处理各种事件,如按键、鼠标移动和矩形拖拽,通过实例展示了如何使用`FigureCanvas`、`LocationEvent`、`KeyEvent`和`MouseEvent`来实现交互式绘图功能。
摘要由CSDN通过智能技术生成

| name | 事件名 |

| canvas | FigureCanvas 实例生成事件 |

| guiEvent | 触发 Matplotlib 事件的GUI事件 |

我们以事件处理中最常见的事件 按键按下/释放事件鼠标按下/释放/移动事件 为例,利用事件属性。 处理这些事件的 KeyEventMouseEvent 类都是从 LocationEvent 派生的,它具有以下属性:

| 属性名 | 含义 |

| — | — |

| x,y | 鼠标距画布左下角的距离(以像素为单位) |

| inaxes | 鼠标所在的 Axes 实例(如果有) |

| xdata, ydata | 鼠标在数据坐标中的位置 |

为了对比属性 xyxdataydata 的区别,使用以下程序进行说明,此程序会在鼠标单击时,在画布上显示鼠标事件的 xyxdata、和 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()

运行程序后,当在画布上单击时,会在鼠标点击处,绘制出事件的 xyxdata、和 ydata 属性值:

  • 20
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值