python中半月形图中的多项式拟合

时间:2018-03-30 01:42:20

标签: python numpy curve-fitting

我试图获得适合我的数据的多项式。目前,我正在使用numpy中的polyfit来获得最佳的loglog情节。但我的目标是让数据适合半月形图。我的代码如下:

import matplotlib.pyplot as plt
import numpy as np
from scipy.optimize import curve_fit
import scipy.optimize as optimization

l = [ 0.006,   0.01,    0.014,   0.024,   0.0346,  0.049,   0.0535,  0.0736,  0.11  ]
f = [5.3375903383330048, 60.531976422513054, 89.111502526131474, 47.132498501584969, 17.447001214543118, 5.2583622688081455, 3.7779565652126865, 1.0621247249682186, 0.1922152085619766]


logx = np.log(l)
logy = np.log(f)
coeffs = np.polyfit(logx,logy,deg=3)
poly = np.poly1d(coeffs)
yfit = lambda x: np.exp(poly(np.log(x)))
plt.loglog(l,yfit(l), ':')




plt.loglog(l,f, 'o')
plt.show()

如果你建议我做一些半年代最佳拟合曲线的改变,我将不胜感激。另外如果python中还有其他软件包,请同时提及它们。enter image description here

1 个答案:

答案 0 :(得分:1)

我想这个。

# log sacle    
x2 = np.linspace(np.min(l), np.max(l), 1000)
y2log = poly(np.log(x2))
plt.loglog(x2,np.exp(y2log), ':')

plt.loglog(l,f, 'o')
plt.show()