我已經搜索了一個體面的數量,但還沒有找到明確的解決方案來解決我的問題。我目前可以將高斯函數擬合到x軸上的任何數據,這是您查看高斯擬合教程時看到的典型數據集。現在我的數據在x軸上方提高了一定數量,所以我不能讓我的高斯擬合擊中x軸。我的解決方案是用一個額外的+ y0常量定義一個高斯函數。我只是不知道如何編碼!目前我有以下。需要幫助Python擬合高斯數據在y = 0時不沿x軸放置
n = len(xcut)
mean = center
sigma = sum(ycut*(xcut-mean)**2)/n
def gaus(x,a,x0,sigma):
return a*exp(-(x-x0)**2/(2*sigma**2))
popt,pcov = curve_fit(gaus,xcut,ycut,p0=[45,mean,sigma])
我想提出的是這樣的功能是:
def gaus(x,a,x0,sigma,y0):
return y0+a*exp(-(x-x0)**2/(2*sigma**2))
但畢竟這我怎麼改變參數的猜測和這樣的?類似於幅度,我會在p0內輸入我的猜測嗎?
編輯:我可以將我的y0設置爲一個常數值,我可以猜出這個合適的效果非常好。但這需要我每次爲每個數據集提供一個很好的猜測。這是一個工作,但一個痛苦!
任何幫助將非常感謝!