我正在尝试在同一个图上绘制两个多个绘图,但只包含前两个绘图。我原本期待有5个地块
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")
答案 0 :(得分:1)
当你像y_1 = x这样的东西时,你不是把x的副本只是一个指向同一个对象的指针。
更重要的是,如果您使用的是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可能会绘制几个图表,但不是您预期的位置。输入一些print()命令来查看你的内容并进行调试
如果是python 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)