等待Python 2.7中的Matplotlib事件



我在stackoverflow上找到了此代码,并且修改了稀薄的。

import numpy as np
import matplotlib.pyplot as plt
import time
x = np.arange(-10,10)
y = x**2
x1 = 0
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
plt.show()

def onclick(event):
    global x1, go
    x1 = event.xdata
    print x1
    fig.canvas.mpl_disconnect(cid)

cid = fig.canvas.mpl_connect('button_press_event', onclick)

print x1

我想知道如何停止/等待程序,直到我单击图。

因为当我调用MPL_Connect时所编写的按照编写,所以我可以单击该图,但我无关紧地获得输出x1 = 0,而不是单击步骤后的正确值。

如何解决它以获取正确的值?

非常感谢,

luca

问题中提供的示例几乎可以。Show语句应在设置图形并连接回调函数的所有调用之后。另外,断开可能不是您的意图。

这是您的代码,编辑以产生图形并反复运行连接的功能。

#!/usr/bin/python
import numpy as np
import matplotlib.pyplot as plt
import time
x = np.arange(-10,10)
y = x**2
x1 = 0
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot(x,y)
def onclick(event):
    global x1, go
    x1 = event.xdata
    print x1
cid = fig.canvas.mpl_connect('button_press_event', onclick)
plt.show()

删除fig.canvas.mpl_disconnect(cid)来自OnClick。

Cid = fig.canvas.mpl_connect('button_press_event', onclick) 

在事件和函数之间进行连接。也应该在PLT之前。展示()。

相关内容

  • 没有找到相关文章

最新更新