【发布时间】:2019-04-17 15:26:17
【问题描述】:
我正在尝试将二阶多项式拟合到原始数据并使用 Matplotlib 输出结果。我试图拟合的数据集中大约有一百万个点。它应该很简单,网上有很多例子。但是由于某种原因,我无法正确处理。
我收到以下警告消息:
RankWarning:Polyfit 可能条件不佳
这是我的输出:
这是使用 Excel 输出的:
请参阅下面的代码。我错过了什么??
xData = df['X']
yData = df['Y']
xTitle = 'X'
yTitle = 'Y'
title = ''
minX = 100
maxX = 300
minY = 500
maxY = 2200
title_font = {'fontname':'Arial', 'size':'30', 'color':'black', 'weight':'normal',
'verticalalignment':'bottom'} # Bottom vertical alignment for more space
axis_font = {'fontname':'Arial', 'size':'18'}
#Poly fit
# calculate polynomial
z = np.polyfit(xData, yData, 2)
f = np.poly1d(z)
print(f)
# calculate new x's and y's
x_new = xData
y_new = f(x_new)
#Plot
plt.scatter(xData, yData,c='#002776',edgecolors='none')
plt.plot(x_new,y_new,c='#C60C30')
plt.ylim([minY,maxY])
plt.xlim([minX,maxX])
plt.xlabel(xTitle,**axis_font)
plt.ylabel(yTitle,**axis_font)
plt.title(title,**title_font)
plt.show()
【问题讨论】:
-
如果删除异常值会发生什么?也许excel会自动删除异常值?
标签: python pandas matplotlib