2013-01-15 54 views
4
import matplotlib 
import matplotlib.pyplot as plt 
print matplotlib.__version__ 
print plt.get_backend() 

def key_event(e): 
    print e.key 

fig = plt.figure() 
fig.canvas.mpl_connect('key_press_event', key_event) 
plt.show() 

我感兴趣的是,在matplotlib/pyplot改性剂(例如Ctrl,Alt,Shift键)按键事件处理工作。 This部分文档提到了对修饰符的一些支持。但是当我使用上面的代码时,我没有看到这种行为。与matplotlib关键事件和修饰符

我宁愿避免必须手动处理修改器并保持关于这些按键/释放事件的状态;例如,我希望能够容易地区分actrl + a而不必保持关于控制向上/向下的状态。

-Am我错过了一些更高层次的接口,修饰符在哪里工作?
- 也许这部分文档只适用于GTKAgg后端,当我通常使用TkAgg?
- 可能是最近添加的修饰符的支持,而不是在我的matplotlib 1.1.1rc版本中?

+0

在添加'matplotlib.use('TkAgg')'(使用matplotlib 1.2)后,在osx下正常工作。 – mmgp

+3

相关的提交在https://github.com/pelson/matplotlib/commit/3bbbd0a27a56f33dbc619e4c6806b0844b7d5e55。因此,解决这个问题的一个简单方法是检查版本的发布日期,并与此提交的日期进行比较。 – mmgp

回答

4

看到上面的mmgp注释后,我试着更新到版本库,git clone git://github.com/matplotlib/matplotlib.git等,这给了我1.3.x. Ubuntu 12.10中的版本返回到1.1.1rc。

该问题已在新版本中解决,所以它似乎是简单的情况下,支持修饰符是最近添加。

+2

感谢您使用解决方案回到您的问题!我有同样的问题,并修复它。 – Phil