2011-02-25 53 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