我正在尝试使用highchart实时更新图表,使用setInverval函数每2秒更新一次图表,并使用.addPoint这样添加数据。

setInterval(function (data) {
    var inf = parseInt(data.stat);
    chart_data.addPoint([x,purple], true, true);
},2000);


一切工作正常,除了图表中没有容纳太多数据,并且先前添加的数据每秒钟被推送消失,因此它没有容纳足够的数据。我希望图表在清除较旧的数据之前保存更多数据。就像保留最近5分钟的数据一样,每隔2秒添加一次新数据,就会清除5分钟之前添加的数据。

目前图表看起来像这样,



xAxis: {
    type: 'datetime',
    tickPixelInterval: 10
       },


显然,降低tickPixelInterval似乎也无济于事。我该如何解决?谢谢

最佳答案

您正在使用:

chart_data.addPoint([x,purple], true, true);


第二个正确的是shift参数(请参阅API:http://api.highcharts.com/highcharts#Series.addPoint),当添加最新数据时,它将导致序列删除第一个数据点。为避免这种情况,您可以检查是否有足够的数据来执行移位。例如2秒* 150 = 5分钟(300秒),因此,如果addPoint在151时间被调用,并且稍后调用,则shift参数应为true,否则为false。

10-04 21:32
查看更多