3
# the first plot DOES NOT set the xlim and ylim properly 
import numpy as np
import pylab as p

x = np.linspace(0.0,5.0,20)
slope = 1.0 
intercept = 3.0 
y = slope*x + intercept
p.set_xlim = ([0.0,10.0])
p.set_ylim = ([0.0,10.0])
p.plot(x,y)
p.show()
p.clf()

def xyplot():
    slope = 1.0
    intercept = 3.0
    x = np.linspace(0.0,5.0,20)
    y = slope*x + intercept 
    p.xlim([0.0,10.0])
    p.ylim([0.0,10.0])
    p.plot(x,y)
    p.show()

# if I place the same exact code a a function, the xlim and ylim
# do what I want ...

xyplot()    
4

1 回答 1

7

您正在设置set_xlimset_ylim不是调用它。你在哪里:

p.set_xlim = ([0.0,10.0])
p.set_ylim = ([0.0,10.0])

你应该有:

p.set_xlim([0.0,10.0])
p.set_ylim([0.0,10.0])

当您进行更改时,您会注意到set_xlim并且set_ylim无法调用,因为它们不存在于pylab命名空间中。pylab.xlim是获取当前坐标区对象并调用该对象方法的快捷set_xlim方式。你可以自己这样做:

ax = p.subplot(111)
ax.set_xlim([0.0,10.0])
ax.set_ylim([0.0,10.0])
于 2013-09-15T12:53:31.313 回答