0
我有这样的python脚本:平稳高斯修改python脚本适合
import pylab as plb
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit
from scipy import asarray as ar,exp
x = ar(range(10))
y = ar([0,1,2,3,4,5,4,3,2,1])
n = len(x)
mean = sum(x*y)/n
sigma = sum(y*(x-mean)**2)/n
def gaus(x,a,x0,sigma):
return a*exp(-(x-x0)**2/(2*sigma**2))
popt,pcov = curve_fit(gaus,x,y,p0=[max(y),mean,sigma])
plt.plot(x,y,'b+:',label='data')
plt.plot(x,gaus(x,*popt),'r-',label='fit')
plt.legend()
plt.title('Fig. 3 - Fit for Time Constant')
plt.xlabel('Time (s)')
plt.ylabel('Voltage (V)')
print(sigma)
print(mean)
plt.show()
输出非常参差不齐的高斯拟合的数据。我怎样才能改善这一点,使之更加美好和平滑 - 而不增加原始数据点。
“我怎样才能改善这一点,使其更加美观和平滑 - 不增加原始数据点。”这是没有意义的:如果你保留(x)数据点的数量,你的数字就会以它的低分辨率结束。请记住,适合原始数据并绘制图形是两件不同的事情。如果您确实也想显示原始数据,请在较高分辨率曲线上重叠绘制这些数据。 – Evert