# 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()
答案 0 :(得分:6)
您正在设置set_xlim
和set_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])