[英]Python plotting with for loop
我是python的新手和绘图的东西。 我试图使用以下脚本生成一个图。 目标是为所有值绘制Q对F的图。
from pylab import *
n = 5
D = 13
B = 10
x = linspace(-6.5, 6.5, 1000)
y = 1/sqrt(2*pi)*exp(-(x)**2/2)
for i in range(1,n):
F = sum(y*cos(2*pi*i*x/D)*exp(-i**2*B/(4*D**2)))
print F
for j in range(1,n):
Q = 2*pi*(j)/D
print Q
plt.plot(Q,F,'rx')
plt.show()
当我运行脚本时,它只绘制一个数据点而不是全部。 我确信,我做了一些愚蠢的错误。 有人可以帮我出去吗? 谢谢。
这是因为您将F和Q设置为等于每个循环上的值,而不是将值附加到数组的末尾。
from pylab import *
n = 5
D = 13
B = 10
x = linspace(-6.5, 6.5, 1000)
y = 1/sqrt(2*pi)*exp(-(x)**2/2)
F,Q = [],[]
for i in range(1,n):
F.append(sum(y*cos(2*pi*i*x/D)*exp(-i**2*B/(4*D**2))))
Q.append(2*pi*(j)/D)
plt.plot(Q,F,'rx')
plt.show()
您只在循环中设置Q,F相等。
from pylab import *
n = 5
D = 13
B = 10
x = linspace(-6.5, 6.5, 1000)
y = 1/sqrt(2*pi)*exp(-(x)**2/2)
for i in range(1,n):
F.append(sum(y*cos(2*pi*i*x/D)*exp(-i**2*B/(4*D**2))))
print F
Q.append(2*pi*(j)/D)
print Q
plt.plot(Q,F, 'rx')
plt.show()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.