Итак, я хочу нарисовать линейный график, где линия проходит от точки к точке в хронологическом порядке, но точки могут go взад и вперед, поэтому линия должна будет go все направления не только правильные. Я действительно не знаю, возможно ли это, но я пока не нашел решения.
Я инициализирую новую линейную диаграмму с нулевыми данными и прохожу через ajax список игроков (наборов данных) и у каждого из них есть список точек с x и y в хронологическом порядке. Например:
data = {
"labels": [3,4,5],
"default": [[15,2],[25,0],[45,1]],
"players": ["Max Ros"]
}
return Response(data)
В списке данных по умолчанию первый элемент имеет значение Y, а второй - позицию метки, к которой он принадлежит. В этом случае значение 15 принадлежит метке во 2-й позиции, что означает число 5 в оси x.
Теперь я могу нарисовать все точки для каждого набора данных, но линия следует порядку меток оси x. а не тот, в который я вставил точки.
Мой код следующий:
$.ajax({
'method':'GET',
'url': url,
success:function(data) {
console.log(data);
chart = new Chart($('#myChart'), {
type: 'line',
data: {
labels: data.labels,
datasets: []
},
options: {
scales: {
yAxes: [{
ticks: {
fixedStepSize: 10,
beginAtZero: true
}
}],
},
}
});
data.players.forEach( function(a, i) {
console.log(a);
chart.data.datasets.push({
label: a,
data: [null],
showLine: true,
spanGaps: true
});
data.default[i].forEach( function(e, j) {
console.log(e);
chart.data.datasets[i].data[e[1]] = e[0];
});
});
chart.update();
},
error: function (request, status, error) {
alert(request.responseText);
}
});
Результат, который я получаю сейчас
Результат, который я хочу
Надеюсь, кто-то знает, как решить это в случае, если это возможно, или, возможно, предложить другой инструмент, где это возможно. Спасибо и извините за мой английский sh!