我在matplotlib中绘制一个1d数组(x轴)和一个2d数组(y轴),因此每个x值都有多个y值。我想画一条最佳拟合的直线(线性回归),而不仅仅是一条连接点的直线。我该怎么做???在
所有的otehr示例似乎只有一个y值/x值。当我使用'from'时sklearn.linear_模型import LinearRegression'我得到的最佳拟合行数与每个x值的y值相等。在
编辑:以下是我尝试过的代码:
model = LinearRegression()
x_axis2 = np.arange(0,len(av_rsq3))
x_axis2 = x_axis2.reshape(-1,1)
model.fit(x_axis2, av_rsq3)
pt.figure()
pt.plot(x_axis2,av_rsq3, 'rx')
pt.plot(x_axis2, model.predict(x_axis2))
注意:x轴2是1d阵列,av rsq3是2d阵列。在
如果你只想绘制y值和它们之间的平均线,这是可能的。借用另一个答案的虚拟数据:
{a1}
只需将这些具有匹配x值的点作为法线点添加,然后可以添加一条最佳拟合线,如下所示:
产生。
请注意,直线不适合我的示例数据,但我在编写它时没有考虑到这一点:)使用polyfit,您还可以更改拟合度,以及获得渐变*和偏移的误差裕度。在
*(或其他多项式系数)
您需要做的是提供一对一的映射。点的出现顺序无关紧要。如果你有这样的东西
你会得到这个的
^{pr2}$相关问题 更多 >
编程相关推荐