2015-05-07 4 views
3

У меня есть диаграмма HighCharts и я показываю тренд, который имеет ценность каждую минуту. Поэтому в данный день у меня будет 1440 точек данных, потому что 24 часа = 1440 минут.Как обрабатывать масштабирование HighCharts с большими наборами данных

Это нормально, когда я показываю один или два дня данных. Но если я покажу 4 недели, у меня будет 40 000 точек данных. Я могу быстро прочитать эти данные с сервера, но для создания графика HighCharts занимает несколько минут.

Мое предлагаемое решение состоит в том, чтобы интерполировать данные на стороне сервера, чтобы у нас было 1000 баллов за 4 недели или одно значение каждые 43 минуты. Затем, когда пользователь увеличивает масштаб, используйте AJAX для повторного чтения данных с сервера.

Я делаю беспорядок этого или это то, что обычно происходит? Есть ли способ заставить HighCharts сделать что-то подобное для меня (и быстро)? Я пробовал HighCharts DownSample Plugin, но начальная медлительность (2-3 минуты, чтобы построить график) остается.

ответ

2

Фактически, вы хотите использовать Highstock, с dataGrouping. Демо-версия here.

Если вы не можете использовать Highstock, это может быть сложно. Однако, проверьте this ticket - это экспериментальный плагин для Highcharts, чтобы использовать холст для рендеринга огромного количества очков. Конечно, IE6/7/8 не обсуждается.

И относительно загрузки данных по запросу, проверьте lazy loading артикул. Да, это относится к Highstock, но должно быть возможно использовать одно и то же решение в Highcharts. Демо-версия here.

+0

Hi Pawl. Спасибо за ответ. Я посмотрел на dataGrouping, но, к сожалению, из-за расходов на лицензирование, я не могу использовать HighStock, и я не уверен, что DataGrouping полностью решит мою проблему. После написания этого вопроса я решил сжать свои данные на стороне сервера и предоставить HighCharts максимум 1000 точек данных вместо XX, 000 точек данных. Спасибо за совет! –

Смежные вопросы