0

我有一个程序如下:

首先,我绘制一张图片:

fig=plt.figure(figsize=(7,6))
ax = fig.add_subplot(111)
ax.plot(x,y,'ro')
ax.set_title('click on points')
plt.show()

然后当我右键单击图片时。它会放大,我会在放大的图片上选择一个点:

def onclick(event):
    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)
    if event.button==3:
        '''
        function zoom-in
        '''
        plt.show()
        onepoint = pylab.ginput(1)
return True

下面是可以调用“onclick”功能的命令

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

问题是“如何将我在“onclick”函数中获得的变量“onepoint”提交到主程序”

4

1 回答 1

0

您可以使用全局变量。在函数外声明 var:

onepoint = 0

然后告诉你的函数你将像这样使用它:

def onclick(event):
    global onepoint

    print 'button=%d, x=%d, y=%d, xdata=%f, ydata=%f'%(
        event.button, event.x, event.y, event.xdata, event.ydata)
    if event.button==3:
        '''
        function zoom-in
        '''
        plt.show()
        onepoint = pylab.ginput(1)
    return True

函数对变量所做的任何更改都会对其产生全局影响。

于 2013-05-21T18:46:44.250 回答