用for循环绘制Python
我是python和绘图方面的新手。我试图用下面的脚本生成一个情节。目标是绘制所有值的Q与F的曲线图用for循环绘制Python,python,Python,我是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
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()
当我运行脚本时,它只绘制一个数据点,而不是所有数据点。我肯定,我犯了一些愚蠢的错误。有人能帮我吗?谢谢。您只是在循环中设置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()
在循环中只需将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()
这是因为您将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()
这是因为您将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()
我不熟悉pylab,我不知道它绘制列表。它只是标准的matplotlib。谢谢你的帮助。现在我知道出了什么问题并了解了它。我不熟悉pylab,我不知道它绘制了列表。它只是标准的matplotlib。谢谢你的帮助。现在我知道出了什么问题,并了解了这一点。