以下设置将Highcharts上的x轴范围设置为过去一小时:
xAxis: {
min: new Date().setHours(new Date().getHours() - 1), // last hour
max: new Date().getTime()), // now
},
然而,每隔几秒就会添加更多数据点。如何使x轴动态化以使刻度更新为新数据点,仅显示过去一小时?
答案 0 :(得分:5)
动态添加积分时,您可以使用Axis.setExtremes
(API)同时更新x轴。例如:
// Add new (random) point
chart.series[0].addPoint(Math.floor(Math.random() * 100));
// Update x-axis range
chart.xAxis[0].setExtremes(new Date().getTime(), new Date().setHours(new Date().getHours()+1));
请参阅this JSFiddle进行类似演示。
答案 1 :(得分:2)
你看过Highstock吗? http://www.highcharts.com/stock/demo。也许它更适合你正在做的事情
但在Highchart上你可以像这样更新最小值:
chart.xAxis[0].update({
min: new Date().getTime(),
max: new Date().setHours(new Date().getHours()-1),
});
答案 2 :(得分:0)
1)看起来你倒退了(最多应该是'现在',min应该是-1小时)
2)实际问题是什么?什么不起作用?
如果适当设置最小值/最大值,则仅显示最小值和最大值内的数据。
您还应该只将数据发送到您要显示的时间范围内的图表。否则,您最终会发送大量不需要的数据。
看看'转变' addPoint()方法的属性:
另请参阅setData()方法: