gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-04 01:07:01 27 4
gpt4 key购买 nike

我看到其他库支持这一点,但 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)

我想我必须用折线图创建另一个数据集,然后把我的方程放在那里,但我不知道该怎么做,我有点迷茫。

我的全部代码在这里 codepen

最佳答案

我通常使用 regression package .

首先,添加 package作为外部脚本。
其次,清理数据。这里只是基本检查:

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'
})

您可以将这些点添加为
  • 另一个折线图数据集
  • 或使用 annotation plugin .
  • 关于javascript - 如何在 Chart.js 中绘制线性回归线,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60622195/

    27 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com