2011-02-25 48 views
1

如何製作此示例http://www.highcharts.com/demo/?example=spline-plot-bands&theme=default,每秒更新一次,就像本示例中的http://www.highcharts.com/demo/?example=dynamic-update&theme=default一樣。Highslide JS> Highchart - 我該如何修改?

第一個例子,帶情節帶的樣條曲線正是我所追求的; 2個陰謀圖,可以選擇隱藏或顯示其中一個。 唯一缺少的就是讓它們在每一秒都活着,像另一個例子那樣更新。

我怎麼可能實現它?

謝謝!

回答

2

在第二個活的更新是通過添加一個計時器到load事件中的chart

chart: { 
    //... 
    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); 
     } 
    } 
    //... 
} 

所以,當圖表已完成加載,setInterval被稱爲完成,每個調用所提供的功能1000毫秒(即每秒); setInterval的回調僅通過series.addPoint增加了一個新點。

您只需添加一個load事件處理函數,該函數將設置合適的setInterval調用來添加您的新點。在更實際的情況下,您將使用setTimeout啓動AJAX調用以獲取更多數據,然後在AJAX的成功回調中添加新點並再次呼叫setTimeout以安排在另一秒之後再次發起AJAX調用(或任何時間間隔在你的應用程序中工作)。

Highcharts documentation看起來相當全面,每個示例(其中有很多)都有一個方便的查看代碼的「查看選項」按鈕,因此設置應該是相當直接的,並且有一點研究。

+0

我該如何停止highcharts的加載點是新值是否等於前一個? – ivcode 2014-07-13 12:56:01

+0

@ivcode:我有一段時間沒有觸及Highcharts,所以我不知道,也許問一個新問題。 – 2014-07-13 17:06:51

+0

找到了更好的圖表庫嗎? – ivcode 2014-07-14 02:38:49