尝试使用两个列表中的点构建图表:
坐标y - y[i]
和x - y1[i]
的 y
和x
。
我正在尝试使用pl.plot()函数。但我失去了如何使用我的列表中的积分。你能建议我该怎么做吗?
我的代码如下:
import matplotlib.pyplot as pl
import random
import math
import numpy as np
disp=0.8
m=0.5
y=[]
y1=[]
for i in range(200):
y.append(0)
for i in range(100):
y1.append(0)
i=0
for x in np.arange(0.0, 1.0, 0.005):
f=pow(2.71,-((x-m)*(x-m)/(2*(disp))))/(math.sqrt((disp)*2.51))
y[i]=f
i=i+1
print("f1:",f)
i=0
for x in np.arange(0.0, 1.0, 0.05):
f = 0.5 * (1 + math.erf((x - m) / (1.41 * math.sqrt(disp))))
y[i]=f
i=i+1
print("f2:",f)
#Do some operations with the values and then put them in y and y1
#The loop is below. Sure, it is not right...
#Please,help..
for i in y:
pl.plot([y[i]],[y1[i]])
pl.show()
感谢您的帮助......
答案 0 :(得分:0)
您应该将两个列表都传递给plot
。
pl.plot(y, y1)
此外,您可以优化所有变异y
和y1
的循环。例如,
for x in np.arange(0.0, 1.0, 0.005):
f=pow(2.71,-((x-m)*(x-m)/(2*(disp))))/(math.sqrt((disp)*2.51))
y[i]=f
i=i+1
很容易转换为
y = np.apply_along_axis(
lambda x: pow(2.71, -(x-m)*(x-m)/(2*disp))/math.sqrt(disp*2.51),
0,
np.arange(0.0, 1.0, 0.005)
)