【问题标题】:Matplotlib "pick_event" not working in embedded graph with FigureCanvasTkAggMatplotlib“pick_event”不能在带有 FigureCanvasTkAgg 的嵌入式图形中工作
【发布时间】:2017-02-17 14:40:40
【问题描述】:

我正在尝试处理一些事件来执行用户与嵌入子图到 Tkinter 框架中的交互。就像在这个example

适用于“key_press_event”和“button_press_event”,但不适用于“pick_event”。

我从链接中修改了该示例,只是在mpl_connect 调用之后添加了以下代码:

def on_button_press(event):
    print('you pressed mouse button')

canvas.mpl_connect('button_press_event', on_button_press)

def on_pick(event):
    print('you picked:',event.artist)

canvas.mpl_connect('pick_event', on_pick)

为什么“pick_event”不适用于嵌入式图表?以及如何让它发挥作用?

我的配置详解:

  • Windows 10
  • Python 3.5(conda 版本)
  • 通过 pip 安装的 Matplotlib 1.5.3

提前致谢!

【问题讨论】:

    标签: python events matplotlib tkinter


    【解决方案1】:

    嗯,我解决了……

    大多数事件我们只需要使用mpl_connect 方法就可以神奇地发生。我的错误是我没有注意到我们需要明确地说我们的情节是“可挑选”的整数,它是触发器的像素容差。因此,除了我在问题中插入的更改之外,我们应该替换

    a.plot(t, s) 代表a.plot(t, s,picker=True)a.plot(t, s,picker=10),例如

    【讨论】:

    • 我让它和axis = figure.add_subplot(1,1,1,picker=True)一起工作
    猜你喜欢
    • 2018-10-23
    • 2012-07-30
    • 2013-04-17
    • 1970-01-01
    • 2020-05-25
    • 1970-01-01
    • 1970-01-01
    • 2019-02-02
    • 2017-08-24
    相关资源
    最近更新 更多