Итак, вы уже знаете:
координаты X рассчитаны для вас ... (поле 35 пикселей): 35, 121, 207, 293, 379, 465.
сгенерированный результат:
[[35,71], [121,71], [207,107], [293,143], [379,35], [465,35]]
это просто список [x,y]
точек
Из этого мы можем удалить X, который мы знаем (рассчитано для нас) и мы получим:
71, 71, 107, 143, 35, 35
мы можем увидеть шаблон с исходным вводом
4, 4, 3, 2, 5, 5
кусок торта, чтобы получить формулу с такой последовательностью:
35 + (5 - y)*36
Осталось только вставить эту формулу в код:
<canvas id="canvas"></canvas>
<script>
canvas = document.getElementById('canvas');
canvas.width = canvas.height = 500;
ctx = canvas.getContext('2d');
x = 35
trendline = []
plot = [4, 4, 3, 2, 5, 5]
plot.forEach(function(value) {
y = 35 + (5 - value) * 36
ctx.lineTo(x, y);
trendline.push([x, y])
x += 86
});
ctx.stroke();
console.log(JSON.stringify(trendline))
</script>
Теперь из того, что вы упомянули в комментариях:
он просто отображает значения, которые вы ему даете ... не генерирует линии тренда из ваших данных
, глядя на код rgraph функции drawLine
:
https://www.rgraph.net/libraries/src/RGraph.line.js
// Loop thru each value given, plotting the line
// (FORMERLY FIRST)
for (i=0,len=lineData.length; i<len; i+=1) {
var data_point = lineData[i];
//
// Get the yPos for the given data point
//
var yPos = this.getYCoord(data_point);
...
//
// Add the coords to an array
//
this.coords.push([xPos, yPos]);
lineCoords.push([xPos, yPos]);
Эта линия для меня выглядит как линия тренда ...