簡體   English   中英

我在使用 curve_fit function 時遇到了一些麻煩

[英]I have some trouble in using the curve_fit function

我想用curve_fit function擬合散點圖plot。 但是,盡管我按照教程中的說明編寫了代碼,但它不起作用。有人可以幫我檢查代碼嗎?

import numpy as np 
from matplotlib import rcParams
from matplotlib.font_manager import FontProperties
import matplotlib.pyplot as plt
from scipy.optimize import curve_fit

rcParams['axes.unicode_minus']=False
myfont = FontProperties(fname='/Library/Fonts/Songti.ttc',size=15)

ydata=[78,78,77.9,74,8,70.1,65.8,58.2,40,5.0,14.0,30,60,69,74,74.2,78,78]
xdata = [257.6695,257.6695,257.6695,307.7231,316.009,309.4141,310.936,312.627,314.4871,316.3472,    317.0236,317.7,319.391,321.082,322.9421,    324.464,    341.7122,426.7695]
plt.plot(xdata,ydata,'*')
plt.xlabel('磁感應強度B(mT)',fontproperties=myfont)
plt.ylabel('檢波電流(μA)', fontproperties=myfont)


def func(x,amp,cen,wid):
    return amp*np.exp(-(x-cen)**2/wid)

popt,pcov = curve_fit(func,xdata,ydata)
print(popt)
amp = popt[0]
cen = popt[1]
wid = popt[2]
residuals = ydata-func(xdata,amp,cen,wid)
fres = sum(residuals**2)
print(fres)

xaxis = np.linspace(250,450,100)
curve_y = func(xaxis,amp,cen,wid)
plt.plot(xaxis,curve_y)

使用maplotlib.pyplot ,您需要明確 state 要“顯示” plot 以便顯示它。

plt.plot(x, y)將創建圖形的准系統,但仍然可以進行許多更改:添加其他圖形或子圖,將其他數據集添加到 plot 以進行比較或更改顏色!

除非你明確地說“在代碼的這一點上給我看 plot”,否則什么都不會發生。 嘗試將以下內容添加到代碼的末尾:

plt.show()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM