2013-09-15 4 views
2
# 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()  
+2

'pylab.set_xlim' не существует – tacaswell

+0

Попробуйте называть их после того, как вы звоните' .plot', в любом случае – sapi

+0

@sapi contary к моей оснастке ответ, я не думаю, это должно иметь значение: 'plt.xlim' будет называть' plt.gca() ', который будет делать текущие оси, если их не существует. Затем эти же оси будут подхватываться «заговором» и работать нормально (только что проверили это). – tacaswell

ответ

5

Вы устанавливаете 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]) 
+0

Большое спасибо ... Я некоторое время смотрел на код и не мог видеть эту элементарную ошибку ... Я, конечно же, ценю вашу помощь, еще раз спасибо ... (как мультяшный персонаж говорит «duh» о себе!) – Krishnan

+0

Нет проблем :) В этот же код слишком долго стоит на штурмовиках, для этого требуется новый набор глаз! – tbekolay

+0

Я пытаюсь опубликовать что-то еще о linregress и polyfit и просто не могу пропустить «цензор» ... ну, хорошо, у меня действительно был установлен код (так я думал) - и у меня были комментарии на что была проблема - сдался после 10 попыток! – Krishnan

Смежные вопросы