2015-04-22 5 views
0

Я пытаюсь использовать два участка с несколькими графиками на одной фигуре, однако включены только первые два графика. Я ожидал иметь 5 участковпостроение нескольких фигур на python

from numpy import * 

from matplotlib.pyplot import * 

x = linspace(-1, 1, 200) 

y_0 = ones(len(x)) 
y_1 = x 
y_2 = 1/2*(3*x**2-1) 
y_3 = 1/2*(5*x**3-3*x) 
y_4 = 1/8*(35*x**4-30*x**2+3) 

figure() 
plot(x, y_0) # Plot some data 
plot(x, y_1) # Plot some data 
plot(x, y_2) # Plot some data 
plot(x, y_3) # Plot some data 
plot(x, y_4) # Plot some data 

grid(True) # Set the thin grid lines 

savefig("plot_1.png") # Save the figure to a file "png", 
           # "pdf", "eps" and some more file types are valid 
show("plot_1.png") 

ответ

1

, когда вы что-то вроде y_1 = х вы не делаете копию й просто указатель на тот же объект.

Что еще более важно, если вы используете python2

>>> 1/2*(3*x**2-1) 
array([ 0., 0., 0., 0., 0., -0., -0., -0., -0., -0., -0., -0., -0., 
     -0., -0., 0., 0., 0., 0., 0.]) 

, поскольку 1/2 получает повернутым к нулю (я знаю, один из самых раздражающих вещей о Python)

Так Matplotlib может быть несколько черчения графики, но не там, где вы ожидаете. Помещенный в некоторых печатных() команды, чтобы увидеть, что у вас есть и вообще отлаживать

Если это вопрос питон 2 это будет исправить это

y_2 = 1.0/2*(3*x**2-1) 
y_3 = 1.0/2*(5*x**3-3*x) 
y_4 = 1.0/8*(35*x**4-30*x**2+3) 
+0

1./2 работал хорошо. – MAS

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