【发布时间】:2019-03-13 22:00:13
【问题描述】:
我正在尝试使用以下代码找到最适合的曲线:
popt, pcov = curve_fit(lambda t,a,b: a+b*np.log(t), data_list, noise_data, absolute_sigma=True)
返回的参数为[-51.90326506, 13.77241918],即: y = -51.90326507 + 13.77241918*log(x)
在 MatPlotLib 上绘制,结果如下:
但是,在 Google 图表上绘制的相同方程式如下所示:
Results plotted on Google's graph tool
我使用下面的代码来生成最佳拟合曲线:
popt, pcov = curve_fit(lambda t,a,b: a+b*np.log(t), data_list, noise_data, absolute_sigma=True)
curvex=np.linspace(min(data_list), max(data_list))
p1 = popt[0]
p2 = popt[1]
curvey=(lambda x,c,m: m*np.log(x)+c)(curvex,p1,p2)
# plot data
plt.plot(data_list,noise_data,'x',label = 'Xsaved')
plt.plot(curvex,curvey,'r', linewidth=2, label = 'Model')
为什么会存在这种差异? python是对的还是google的地图是对的?
【问题讨论】:
标签: python matplotlib