Javascript 如何在Chart.js中绘制线性回归线

Javascript 如何在Chart.js中绘制线性回归线,javascript,chart.js,Javascript,Chart.js,我看到其他库也支持这一点,但是Chart.js的数据非常少。有人能告诉我如何从我的曲线图的回归线开始吗?这是我目前的代码: var datiedu3 = {"labels": ['ok'], "datasets": [{label: 'EEE', data: datoa , backgroundColor: 'rgb(255, 99, 132)',

我看到其他库也支持这一点,但是Chart.js的数据非常少。有人能告诉我如何从我的曲线图的回归线开始吗?这是我目前的代码:

var datiedu3 = {"labels": ['ok'],
          "datasets": [{label: 'EEE',
                        data: datoa ,

                        backgroundColor: 'rgb(255, 99, 132)',
                        borderWidth: 1,
                        showLine: false}] 
           };

function grafo2(dati, opzioni) {
  var grafoline = document.getElementById('Chartline').getContext('2d');
  new Chart(grafoline, {type: 'scatter',data: dati, options: opzioni});
};
// display the data used in dataset[0]:
console.log(datiedu3.datasets[0].data)
grafo2(datiedu3)
我想我必须用一个折线图创建另一个数据集,然后把我的方程放在那里,但我不知道怎么做,我有点迷路了

我的全部代码都在这里

我通常使用

首先,将添加为外部脚本。 第二,清理数据。这里只是基本检查:

const clean_data = datoa
    .filter(({ x, y }) => {
      return (
        typeof x === typeof y &&  // filter out one string & one number
        !isNaN(x) &&              // filter out `NaN`
        !isNaN(y) &&
        Math.abs(x) !== Infinity && 
        Math.abs(y) !== Infinity
      );
    })
    .map(({ x, y }) => {
      return [x, y];             // we need a list of [[x1, y1], [x2, y2], ...]
    });
然后跑

const my_regression = regression.linear(
  clean_data
);
结果将类似于:

{
  'points': [[4,3.79],[4.75,3.83],[5.5,3.87],.....],
  'equation': [0.05,3.59],
  'r2': 0.26,
  'string': 'y = 0.05x + 3.59'
}
完成了。我们有[x,y]点。因此,将线性回归点转换为chartjs可以呈现的内容:

const useful_points = my_regression.points.map(([x, y]) => {
    return y;    
    // or {x, y}, depending on whether you just want y-coords for a 'linear' plot
    // or x&y for a 'scatterplot'
})
您可以按以下方式添加这些点:

  • 另一个折线图数据集
  • 或者带着

我想一种方法是绘制回归线的点并将它们全部存储在数据集中?这是真的,我尝试过,但我用来绘制这些点的代码没有输出任何线!您可以检查您的
lr
对象是否不返回任何点。您的
yData
对象在包含
无穷大和
NaN
xData
的位置上有空字符串。在
linearRegression
函数中,您可以毫无顾忌地进行求和和乘法