我在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之前。展示()。