首先,对不起我的英语。
第二,但是我的帖子的目的是我不了解应用于数据的polyfit方法的结果。
我正在尝试获取一天的下载速度图,所有值(点)都可以,但是当我尝试获取多项式线时,系数很疯狂。
有我的代码:
import matplotlib.dates as pltDates
import numpy as np
import numpy.polynomial.polynomial as poly
dates = pltDates.date2num(timeValues)
polyLineEq = poly.polyfit(dates, downloadValues, 2)
polyLine = np.poly1d(polyLineEq)
plt.plot(xx, polyLine(xx))
其中timeValues是速度捕获的时间列表,而downloadValues是速度捕获的列表。
这里的条目:
下载值:
[637.7002837917455, 360.3778120551389, 619.5766620821665, 636.9486179554266, 664.3231094306018, 738.2680311720497, 243.8327594142206, 742.9903527743229, 686.7140415927788, 668.3225185514085, 676.523718421761, 649.8826401724951, 672.2717746125593, 538.7263431234095, 753.3713378294058, 741.35418932585, 236.69393515608996, 644.9317040466514]
日期:
[737025.89454078 737025.90627192 737025.90696364 737025.9076631 737025.90835721 737025.90905097 737025.90974066 737025.91043157 737025.91113666 737025.91183039 737025.91252393 737025.91321981 737025.91391471 737025.91460573 737025.91529649 737025.91599611 737025.91668863 737025.91738283]
结果为度= 2:
polyLineEq:
-9.52e+07 x + 0.0002777 x + 0.0001752
polyLine(xx):
[-5.17110011e+19 -5.17110013e+19 -5.17110014e+19 -5.17110016e+19 -5.17110018e+19 -5.17110020e+19 -5.17110022e+19 -5.17110024e+19 -5.17110026e+19 -5.17110028e+19 -5.17110030e+19 -5.17110031e+19 -5.17110033e+19 -5.17110035e+19 -5.17110037e+19 -5.17110039e+19 -5.17110041e+19 -5.17110043e+19]
对于度= 0:
polyLineEq:
606.3
polyLine(xx):
[606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286 606.26721286]
0度使一条线看起来不错,但它只是一条直线(0度为法线)。
有关信息,我已经尝试过将值取整并除以较小的值但结果相同的值。
我误会什么?
是否可以做我想要的(代表我的下载速度趋势的线)?
非常感谢您的帮助!
祝你有美好的一天;)
答案:我的数据杂乱无章。