Моя диаграмма имеет несколько серий, и когда я пытаюсь добавить новую точку и разрешить сдвиг в true в функции addpoint в серии, кажется, что она занимает слишком много очков. Моя функция requestData запускает запрос ajax, который удаляет мой api и возвращает данные. Начальная загрузка нагрузки в данных просто прекрасна, однако после того, как первые точки добавляются в серию, кажется, что они снимают слишком много очков с некоторых серий.Сдвиг высоких карт сбрасывает слишком много очков в начале
Вот что это выглядит первоначальная нагрузка
https://gyazo.com/51a2afc465f8fbb625e384e75d52b865
и вот что это выглядит как после одного и двух запросов:
https://gyazo.com/0b523e4675c681b7495a38660b4de72c
https://gyazo.com/5cf7e9498ab3b34f3eaac1cf50a0bdc5
Вот мой код для запроса данных:
function requestData(chart1, start, devID, attrib) {
$.ajax({
url: 'api/MetricsAPI/',
data: {
deviceID: devID,
attribute: attrib,
startDate: start
},
success: function (dataset) {
var chartSeries = chart1.series;
for (var index = 0; index < dataset.length; index++) {
for (var i = 0; i < chartSeries.length; i++) {
if (chartSeries[i].name == dataset[index].attribute) {
var shift = chartSeries[i].data.length > 12;
chartSeries[i].addPoint([parseInt(dataset[index].epochTime), dataset[index].value], true, shift);
console.log('date: ' + dataset[index].epochTime + ', ' + 'value: ' + dataset[index].value);
}
}
}
chart1.redraw();
//call it again after one minute
setTimeout(requestData, 30000, chart1, dataset[dataset.length - 1].epochTime, devID, attrib);
},
failure: function (xhr, error) {
console.log(xhr);
console.log(error);
},
cache: false
});
}
Невозможно установить 'chartSeries [i] .addPoint ([parseInt (dataset [index] .epochTime), dataset [index] .value], true, shift);' redraw param to false ('true' = > 'false')? –
@Pawel Fus Я попробую это – Johnathon64
Кроме того, я бы предложил дважды проверить это условие: 'chartSeries [i] .name == dataset [index] .attribute' - может случиться, что вы добавляете несколько точек с одинаковой временной меткой для одна серия, поэтому точки не видны, но удалены несколько точек. Рассматривали ли вы установку 'series.id', а затем используя' chart.get (id) ', чтобы добавить точки к соответствующим сериям? Конечно, идентификаторы должны быть четкими. –