#javascript #highcharts
#javascript #highcharts
Вопрос:
Мне нужно загружать данные с интервалом в 15 минут для данных за 6 месяцев для каждой серии. Количество рядов может варьироваться от 2 до 20.
Итак, я попробовал загрузить простой массив значений [28, 83, 13, 30, ...]
и установить plotOptions
значение, начинающееся с 00:00
с 15 min interval
, чтобы xAxis
оно генерировалось динамически. Работает достаточно хорошо.
Мне также нужно включить аннотации, которые могут появиться в любое время, например, 13:19
за пределами 15-минутного интервала.
Означает ли это, что мне нужно загрузить массив из [x, y]
пар, таких как [['00:00', 28], ['00:15', 83], ['00:30', 13], ['00:45', 30], ...]
, чтобы аннотации могли отображаться в произвольное время?
Медленнее ли производительность при загрузке массива [[x1, y1], [x2, y2], [x3, y3], ...]
vs [y1, y2, y3, ...]
?
Ответ №1:
Формат данных, который вы предоставляете диаграмме, не влияет на возможность добавления примечаний. Точки диаграммы будут по-прежнему иметь ту же структуру свойств.
Вы можете легко сравнить производительность для разных форматов данных:
console.time('Create chart');
Highcharts.chart('container', {...});
console.timeEnd('Create chart')
Тесты для 17280 точек в серии (4 серии):
-
Массив числовых значений: 496,66 мс — 664,18 мс
Живая демонстрация:http://jsfiddle.net/BlackLabel/9xs20mrf /
-
Массив массивов с 2 значениями: 444,14 мс — 610,68 мс
Живая демонстрация:http://jsfiddle.net/BlackLabel/0n18c9L6 /
-
Массив объектов (без турбо-режима): 496,46 мс — 726,66 мс
Живая демонстрация:http://jsfiddle.net/BlackLabel/b3ntosd2 /
Как вы можете видеть, различия относительно невелики. Наилучший результат (второй тест), вероятно, объясняется тем фактом, что диаграмме не нужно вычислять значения x.