2016-07-21 2 views
0

Я хочу обновить гистограмму данными, которые поступают динамически, без повторного рисования всего графика. My sample Code is hereКак обновить гистограмму в Highcharts без повторной перерисовки

$(function() { 
    $('#container').highcharts({ 
     chart: { 
      type: 'bar' 
     }, 
     title: { 
      text: 'Stacked bar chart' 
     }, 
     xAxis: { 
      categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas'] 
     }, 
     yAxis: { 
      min: 0, 
      title: { 
       text: 'Total fruit consumption' 
      } 
     }, 
     legend: { 
      reversed: true 
     }, 
     plotOptions: { 
      series: { 
       stacking: 'normal' 
      } 
     }, 
     series: [{ 
      name: 'John', 
      data: [5] 
     }, { 
      name: 'Jane', 
      data: [2] 
     }, { 
      name: 'Joe', 
      data: [3] 
     }] 
    }); 
}); 

Здесь, если данные в серии приходит динамически, то, как только увеличить или уменьшить ширину бара или подсчитывать вверх/вниз конкретные бары. Кроме того, если добавляется еще одна панель или существующая панель отсутствует в новых данных.

+0

Вы можете использовать Series.update() для обновления всей серии, Series.setData() для установки данные вашей серии, chart.addSeries() Для добавления новых Series и Series.addPoint() для добавления одной точки в вашу серию. Вы можете найти информацию об этих методах в API Highcharts: http://api.highcharts.com/ –

ответ

0

Добавьте следующий

events: { 
       load: function() { 

        // set up the updating of the chart each second 
        var series = this.series[0]; 
        setInterval(function() { 
         var x = (new Date()).getTime(), // current time 
          y = Math.random(); 
         series.addPoint([x, y], true, true); 
        }, 1000); 
       } 

Это добавляет очков каждый второй, но вы можете изменить интервал или сам вентиляционный сказать событие щелчка.

Так Highcharts есть демо, которое вы могли бы проверить для этого, если вы нуждаются в дальнейшем уточнении:

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/dynamic-update/

+0

Здравствуйте, Алан, это хорошо, но можете ли вы объяснить, как я могу обновить свои данные, если мои данные в серии обновляются, здесь вы изменение данных с помощью некоторых функций @Alan –

+0

Вы обновляете данные серии с помощью JS/Jquery? – Alan

+0

весь этот файл является дочерним презентатором, и данные появляются, когда когда-либо родитель делает и запрос ajax, и данные передаются внутри функции дочернего презентатора (этот графический презентатор) @Alan –

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