ast*_*ris 3 python numpy matplotlib scipy
我有一个带有两个数据集的图,它产生一个轻微的梯度,其中最佳拟合的曲线可能是过度绘制的.
目前我只是设法得到最合适的直线.我理解scipy.optimize.curve_fit应该能够帮助我,但这需要我知道我想要过度绘制的功能(我认为).
以下是我的代码和图表.如何为这些数据集创建曲线图?
plt.figure(figsize=(15,6.6))
pl.subplot(1,2,1)
plt.plot(gg,AA, 'kx')
plt.xlabel('x')
plt.ylabel('y')
plt.gca().invert_yaxis()
y=AA
x=gg
fit=pl.polyfit(x,y,1)
#slope, fit_fn=pl.poly1d(fit)
fit_fn=pl.poly1d(fit)
scat=pl.plot(x,y, 'kx', x,fit_fn(x), '-b' )
pl.subplot(1,2,2)
pl.plot(LL,pp, 'kx')#shows points with no removal or bestfit
plt.gca().invert_yaxis()
plt.savefig('1.jpg')
plt.show()
Run Code Online (Sandbox Code Playgroud)

应该注意的是,可能没有曲线,但我想发现是否有适合的曲线.
如果我理解得很好,那么你的问题就是概念而非实际问题.
如果要显示有点代表数据集的线,可以从三个方面开始:移动平均,插值和多项式拟合.
移动平均值很好地平滑了您的数据集.我不知道它的内置函数,但你可以自己编写代码,就像这里讨论的那样.
插值(例如样条曲线)适合数据集的某些功能,可以在许多点进行评估,然后进行绘图.
使用上面提到的两种方法,您不必指定函数.但是,您可以 自己拟合多项式函数.如何确定多项式的次数?您可以记录所有数据点,将线性线拟合到日志数据,并且如果IT FIT WELL,则可以将线性部分的系数视为原始数据集的多项式的次数.但是,不要使用太大程度的多项式 - 您可以轻松地使用此方法进行过度拟合.
| 归档时间: |
|
| 查看次数: |
9850 次 |
| 最近记录: |