2013-08-30 35 views
1

我想使用Highcharts圖並動態更新y軸。其實我想每5秒更新一次nsw,Tas,ACT。我該怎麼做 ?如何在一段時間內動態更新Highcharts數據

這是我的代碼。

$(function() { 
$('#container').highcharts({ 
        title: { 
         text: 'Histogram', 
         x: -20 // center 
        }, 
        subtitle: { 
         text: 'Source: www.trove.com', 
         x: -20 
        }, 
        xAxis: { 
         categories: ['NSW', 'Tas', 'ACT','QLD','VIC','SA','WA'] 
        }, 
        yAxis: { 
         title: { 
          text: 'Hits' 
         }, 
         plotLines: [{ 
          value: 0, 
          width: 1, 
          color: '#808080' 
         }] 
        }, 
        tooltip: { 
         valueSuffix: '°C' 
        }, 
        legend: { 
         layout: 'vertical', 
         align: 'right', 
         verticalAlign: 'middle', 
         borderWidth: 0 
        }, 
        series: [{ 
         name: 'States', 
         data: [nsw, Tas, ACT,qld,vic,sa,wa] 
        }] 
       }); 
      }); 

      }); 

回答

1

在文檔可以在jsfiddle中找到來自Highcharts的示例。檢查出http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/dynamic-update/。在這個例子中,每秒鐘都會添加一個新點。這裏談到的相關代碼部分:

chart: { 
    type: 'spline', 
    animation: Highcharts.svg, // don't animate in old IE 
    marginRight: 10, 
    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); 
     } 
    } 
}, 
` 
+0

好吧,我已經檢查過它,它會更新x軸和y軸!我只需要更新y軸 – Amir

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(), 
       l = series.data.length; 

      for(var i = 0; i < l; i++) { 
       series.data[i].update({ 
        y: getHits(i) // or something else 
       }); 
      } 
     }, 5000); // 5 seconds 
    } 
} 

哪裏index是索引(從0計數)NSW/TAS/ACT的數據數組。 (對於nsw = 0,對於Tas = 1等)

+0

我仍然困惑,在我的代碼中使用您的答案的地方,因爲我需要每5秒更新6個值,我還有一個名爲getHits()的函數,它返回每個狀態的新值 – Amir

+0

查看更新的答案。 –

+0

這個事件塊應該放在哪裏?該圖顯示了一條直線零線 – Amir