我正在matplotlib中相对于2d数组(y轴)绘制1d数组(x轴),因此每个x值都有多个y值。我想绘制一条最适合的straigt线(线性回归),而不仅仅是连接这些点的线。我该怎么办??
所有样本示例似乎每个x值都只有一个y值。当我使用'from sklearn.linear_model 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_axis2是一个1d数组,而av_rsq3是2d数组。
答案 0 :(得分:1)
您只需要添加具有匹配x值的这些点作为普通点,然后可以添加一条最合适的线,如下所示:
void FuncThatDoesSomething(T1 arg1, T2 arg2,...)
{
// do it
}
// function has to match the event handler signature
void FuncThatIsBoundInXaml(object sender, RoutedEventArgs e)
{
var vm = sender.DataContext as YourViewModelType;
// call method with required args
FuncThatDoesSomething(vm.SomeProperty, 42);
}
产生。
注意,一条直线不适合我的示例数据,但是在编写它时我并没有考虑到这一点:)使用polyfit,您还可以更改拟合度,并获得渐变*和偏移量。
*(或其他多项式系数)
答案 1 :(得分:0)
您需要做的是提供一对一的映射。点出现的顺序无关紧要。所以如果你有这样的东西
X: [1,2,3,4]
Y1: [4,6,2,7]
Y2: [2,3,6,8]
你会得到这个
X: [1,2,3,4,1,2,3,4]
Y: [4,6,2,7,2,3,6,8]
答案 2 :(得分:0)