2012-08-03 60 views
1

我有一个Highchart,通过AJAX和jQuery在setInterval函数中接收JSON数据,当我使用series.data[i].y = response[i].y时,y的值是变化,但剂量显示在图表中,点的高度有前值,但在工具提示中显示最近值?和x值doseng changhe在所有,请帮助我如何更新x和y值,如果它变动?如何更新Highchart中的点值?

  chart:{ renderTo: 'container', 
      zoomType: 'xy', 
      plotBackgroundImage: 'graphics/skies.jpg', 
      events: { 
       load: function() {      
      var series = this.series[0];setInterval(function() {ajax({type: "POST",url: "/Home/GetData",data: null),contentType: "application/json; charset=utf-8",success: function (response) {   for (var i = 0; i < response.length; i++) {  if (series.data[i].y =response[i].y || series.data[i].category != response[i].x) {   series.data[i].y =response[i].y; series.data[i].category = response[i].x;} }}, dataType: "json",failure: ajaxCallFailed });}, 50000);} 

回答

2

您不应该直接修改this.series [0]对象。 Highcharts有api调用,您可以使用,这应该用于正确的结果,而不是无意中破坏任何东西。 以下是系列对象支持的方法列表@http://www.highcharts.com/ref/#series-object

您可能希望根据您的要求使用addPoint或setData。

我不建议你这样说,但在你做魔法之后尝试调用重绘方法(this.redraw()),http://www.highcharts.com/ref/#chart-object