仅在 Highchart 上显示最后的 x 个点

show only last x points on Highchart

我有一个这样的动态数据系列

[1,0],[2,0],[3,0],[4,0],[5,0],[6,2],[7,5],[8,6],[9,6],[10,6],[11,7],[12,8],[13,8],[14,9]

数据会自动增长,所以稍后会添加一个额外的数据点,例如[15,13]

我有一个输入字段,用户可以在其中 select 从他想显示的末尾算起多少点。 例如,如果他输入 5,则只有 [10,6],[11,7],[12,8],[13,8],[14,9] 应该可见。但是当添加额外的点时,这应该会自动变成[11,7],[12,8],[13,8],[14,9],[15,13]

我想我必须使用 chart.xAxis[0].setExtremes() 但我不知道输入什么作为参数...?

添加点时您必须"reapply" setExtremessetExtremes 函数接受这些参数 (API):

setExtremes (Number min, Number max, [Boolean redraw], [Mixed animation])

您必须使用 minmax 来显示所需的点数,并包括最后一个点。例如,您可以这样做:

var chart = $('#container').highcharts();
var numberOfPointsToShow = 5;

// Add new random point
chart.series[0].addPoint(Math.random() * 25);

// Get index of last point
var lastPoint = chart.series[0].data.length - 1;

// Set extremes to go from "min" (based on last point) to last point
chart.xAxis[0].setExtremes(
        lastPoint - (numberOfPointsToShow - 1), // min
        lastPoint); // max

参见 this JSFiddle example 动态添加点。