【Python】【matplotlib】键鼠响应事件

事件绑定fig.canvas.mpl_connect()

import matplotlib.pyplot as plt


def on_key_press(event):
    print(event.key)


fig, ax = plt.subplots()
fig.canvas.mpl_connect('key_press_event', on_key_press)
plt.show()

这段程序的功能是响应键盘按键,print按键的值

mpl_connect的参数:

参数意义
‘button_press_event’按下鼠标
‘button_release_event’释放鼠标
‘draw_event’界面重新绘制
‘key_press_event’按下键盘
‘key_release_event’释放键盘
‘motion_notify_event’鼠标移动
‘pick_event’鼠标点选绘图对象
‘resize_event’
‘scroll_event’鼠标滚轴事件
‘figure_enter_event’鼠标进入figure
‘figure_leave_event’鼠标离开figure
‘axes_enter_event’鼠标进入Axes
‘axes_leave_event’鼠标离开Axes
‘close_event’关闭图表

查询已经注册的响应函数

fig.canvas.callbacks.callbacks

程序示例:键盘控制颜色

import matplotlib.pyplot as plt
import numpy as np


def on_key_press(event):
    if event.key in 'rgbcmyk':
        line.set_color(event.key)
    fig.canvas.draw_idle()#重新绘制整个图表,



fig, ax = plt.subplots()
x = np.linspace(0, 10, 1000)
y = np.sin(x)
line = ax.plot(x, y)[0]

fig.canvas.mpl_disconnect(fig.canvas.manager.key_press_handler_id)#取消默认快捷键的注册
fig.canvas.mpl_connect('key_press_event', on_key_press)
plt.show()

这里有两个点:
1. fig.canvas.draw_idle()重新绘制整个图表
2. fig.canvas.mpl_disconnect()取消已经注册的响应函数。这里是为了取消默认快捷键

程序示例

import matplotlib.pyplot as plt

fig, ax = plt.subplots()
text = ax.text(0.5, 0.5, 'event', ha='center', va='center', fontdict={'size': 20})


def call_back(event):
    info = 'name:{}\n button:{}\n x,y:{},{}\n xdata,ydata:{}{}'.format(event.name, event.button,event.x, event.y,event.xdata, event.ydata)
    text.set_text(info)
    fig.canvas.draw_idle()


fig.canvas.mpl_connect('button_press_event', call_back)
fig.canvas.mpl_connect('button_release_event', call_back)
fig.canvas.mpl_connect('motion_notify_event', call_back)

plt.show()

功能不多解释,仔细读读代码

  • 17
    点赞
  • 126
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值