这是我第一次使用matplotlib和numpy。Python:numpy和matplotlib异常
这里去的问题:
如果我转到蟒蛇CLI,预期代码工作正常。下面是代码
>>> from numpy import *
>>> y = array([1,2])
>>> y = append(y, y[len(y) - 1]+1)
>>> y
array([1, 2, 3])
但是,如果我在一个脚本matplotlib使用它,我得到这个错误。
line 26, in onkeypress
y = append(y, y[len(y) - 1]+1)
UnboundLocalError: local variable 'y' referenced before assignment
这里是我的脚本:
from matplotlib.pyplot import figure, show
from numpy import *
figzoom = figure()
axzoom = figzoom.add_subplot(111, xlim=(0,10), ylim=(0, 10),autoscale_on=True)
x = array([1, 2 ])
y = array([1, 10 ])
def onkeypress(event):
if event.key == "up":
y = append(y, y[len(y) - 1]+1)
x = append(x, x[len(x) - 1] )
axzoom.plot(x,y)
我试过 “追加” 荷兰国际集团到不同的阵列,说Y1,然后Y = y1.copy()。但我仍然得到同样的错误。我必须在这里错过一些微不足道的东西!
因此,通过相同的逻辑“axzoom”也应该是全球性的......礼仪? – 2010-10-02 03:51:14
它不必声明为全局。由于本地范围没有axzoom变量,因此使用全局值。分配给变量是不同的,因为它在本地范围内创建了一个新变量。 – 2010-10-02 06:51:16
@ future.open - 我的答案中的关键词是“当你分配”和“如果你不分配”。由于axzoom没有被分配一个值,但它的值正在被使用,它仍然指向全局变量。 – Rajan 2010-10-03 22:16:00