2013-04-10 2 views
19

После обновления для Highcharts 2.1.9 до 3.0.0 мы обнаружили, что невозможно сделать более 1000 точек в одной серии.Highcharts 3 не может отображать более 1000 точек в одной серии

Если вы добавите 1000 очков в серию, это будет хорошо.

Если вы добавите 1001 очко в серию, это не будет отображаться вообще. Если вы затем допросите серию, массив «data» в серии пуст.

Вы можете, однако, сделать несколько серий с 1000 точками - так что, по-видимому, не существует ограничений по общему количеству точек на диаграмму.

Вот jsFiddle, который иллюстрирует это: http://jsfiddle.net/YWVHx/47/

$(function() { 

    var series1Data = []; 
    for (var i = 0; i < 1000; i++) { 
     series1Data.push({ 
      x: (new Date()).getTime() + i * 10000, 
      y: Math.random() * 100 
     }); 
    } 

    var series2Data = []; 
     // If you change this back to 1000 the series gets rendered 
     for (var i = 0; i < 1001; i++) { 
      series2Data.push({ 
       x: (new Date()).getTime() + i * 10000, 
       y: Math.random() * 100 + 100 
      }); 
    } 

    $('#container').highcharts({ 
     chart: { 
      type: 'line' 
     }, 
     title: { 
      text: 'Foo' 
     }, 
     xAxis: { 
      type: 'datetime' 
     }, 
     yAxis: { 
      title: { 
      text: null 
      } 
     }, 
     tooltip: { 
      crosshairs: true, 
      shared: true, 
      valueSuffix: '°C' 
     }, 
     legend: { 
      enabled: true 
     }, 
     series: [{ 
      name: '1000 Points - I work ;-)', 
      data: series1Data 
     }, { 
      name: '1001 Points - I dont work :-(', 
      data: series2Data 
     }] 
    }); 
}); 

Является ли это ограничение, которое было наложено на цель, или это проблема с v3?

ответ

25

Вы должны установить больше turbothreshold: http://api.highcharts.com/highcharts#plotOptions.series.turboThreshold

+0

Спасибо Sebastian , Задача решена. Полезная функция. – Herman

+0

отлично, именно то, что я искал! – 23tux

+0

Похоже, что у вас может быть проблема с производительностью (скорость рендеринга). –

8

Для удобства другого пользователя, это дополнительный пример, который вы можете скопировать и вставить:

 plotOptions:{ 
      series:{ 
       turboThreshold:5000//set it to a larger threshold, it is by default to 1000 
      } 
     } 

Проверить http://jsfiddle.net/YWVHx/339/ здесь результаты

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