Увы, у Higcharts есть опция connectNulls
, она будет напрямую подключать значение до следующего. Единственный способ, которым я могу думать о том, чтобы предобработки данных, чтение значения перед добавлением его в серию и преобразование аннулирует в нули, например:
// var seriesdatagorfromsomewhere
for (var i = 0; i < seriesdatagorfromsomewhere.length; i++) {
if (seriesdatagorfromsomewhere[i][1] === null) {
seriesdatagorfromsomewhere[i][1] = 0;
}
}
А затем добавить данные в серии, как вы обычно делаете ,
Если ваш код не генерирует нули, вы можете сделать это двумя способами: проверить точки против даты сервера каким-либо образом и проверить точки между рядами.
Идея состоит в том, чтобы обрабатывать точки один за другим, получая первый параметр каждого из них (дата). Когда вы сталкиваетесь с несуществующей датой, просто добавьте ее с нулевым значением. Вы должны прекратить обработку информации, когда вы достигнете даты остановки (с сервера, или запроса, который вы сделали, чтобы показать информацию, что угодно)
Другой - тот же подход, но останавливается, когда какая-либо серия не имеет значения. Одна из проблем заключается в том, что если какая-либо серия имеет данные для выходных, то вы не создадите для нее нулей.
Пример:
// var seriesdatagorfromsomewhere
// var stopdate (from server/request or highest date value from all series)
// var startdate (from server/request or lowest date value from all series)
// var currentseriespos = 0;
while (startdate <= stopdate) {
var date = seriesdatagorfromsomewhere[currentseriespos][0];
if (startdate != date) {
seriesdatagorfromsomewhere.splice(currentseriespos, [startdate, 0]);
}
startdate = increaseOneDay(startdate);
currentseriespos++;
}
не испытывалось. Конечно, петля не будет работать так, и вы получите бесконечный цикл, но вы получите эту идею.
А, спасибо. Код, который вы произвели, в то время как я благодарен, не будет работать. Ряд данных не содержит записей для каких-либо нулей, поэтому их нельзя сравнивать. Он просто игнорирует его и переходит к следующему набору данных. Данные взяты из базы данных и создаются при выполнении поиска. Затем они подсчитывают их, запуская SQL-запрос, группируя их по имени и дате, чтобы получить счет за каждый день. Поэтому очень сложно проверить, если в течение каждого дня подряд, если нет данных, чтобы сгенерировать 0. Мне нужно будет увидеть, можно ли добавить генерацию 0 где-то в бэкэнд. – Slopax
О, я понимаю. Тогда я думаю, что у меня есть еще 2 интерфейса. Переход к редактированию. –
@Slopax Edited. –