Skip to main content
 首页 » 编程设计

python之使用 Python/Numpy 将数据拟合到多项式曲线

2025年05月04日12dyllove98

我有一些时间序列数据,我正尝试使用 Numpy 中的 polyfit 函数将其拟合到曲线。我已使用 date2num 函数将日期时间 x 值转换为数字,并绘制了原始数据的图表,大约有 600 个数据点 (01-01-2014 - 10-08-2015)。

我正在尝试推导出曲线的表达式,以便我可以大致预测 future 的数据点,例如在接下来的 30 天内超出我的图形数据。然而,我的多项式表达式,当以任何顺序绘制时,都偏离了。我确信我做错了一些明显的错误,但似乎无法破解它。

x = df["dates"] 
y= df["brand"] 
 
poly = numpy.polyfit(x, y, 5) 
polynomial = numpy.poly1d(poly) 
 
xs = numpy.linspace(x[0], x[-1]+60, len(x)+60) 
y_int = polynomial(xs) 
 
plt.plot(x, y) 
plt.plot(xs, y_int) 
plt.show() 

下图以蓝色显示原始曲线。

请您参考如下方法:

我不能发表评论,因为我缺乏声誉。如果管理员将此移动到评论中,我会很高兴。我认为问题在于您的数据看起来根本不是多项式的。你最终会得到一个多项式无法实现的平台。

也许试试其他功能。在不了解数据来源的情况下,很难判断哪种函数有用...