我的dataframe
有两个专栏,例如x
和y
。下图显示了scatter plot
和x
中的y
。
基于散点图,我使用以下代码进行线性拟合,该代码在下图中产生蓝色直线。
fig, ax = plt.subplots(nrows=1, ncols=1)
ax.scatter(df['x'], df['y'])
b, m = polyfit(df['x'], df['y'], 1)
ax.plot(df['x'], b + m * df['x'], 'blue', linewidth=1)
现在,我想绘制散点图的另一条拟合曲线,也许是多项式。所需的结果类似于上图中的红色曲线。我尝试使用here中的以下内容。
coefs = np.polyfit(df['x'], df['y'], 2)
p = np.poly1d(coefs)
plt.plot(df['x'], df['y'], "bo", markersize= 2)
plt.plot(df['x'], p(df['x']), "r-")
但是对于我的数据,结果不正确,如下所示。
我应该怎么办?
编辑:数据为here。
答案 0 :(得分:0)
根据Zaraki Kenpachi发布的链接,尝试在现有的拟合和绘图代码之前添加df = df.sort_values(by='x')
。