如何使用Series.addPoint移动数据而不移动highcharts中的x轴值

如何使用Series.addPoint移动数据而不移动highcharts中的x轴值,highcharts,Highcharts,我有一个工作时间历史图,它删除了一个数据点,而另一个数据点是在两分钟的数据积累后添加的。问题在于,10分钟后,很难看到显示的数据集的持续时间(即使使用tickInterval)。有没有办法在积累两分钟的数据后显示固定的x轴标签?具体来说,我正在寻找真正固定的标签,这些标签不会随着数据向左滚动 我尝试使用setCategories: chart.xAxis[0].setCategories(cats, true); 其中cats是一个带有牺牲值的数组,将在移位期间删除,但是x轴标签仍然向左滚动,

我有一个工作时间历史图,它删除了一个数据点,而另一个数据点是在两分钟的数据积累后添加的。问题在于,10分钟后,很难看到显示的数据集的持续时间(即使使用tickInterval)。有没有办法在积累两分钟的数据后显示固定的x轴标签?具体来说,我正在寻找真正固定的标签,这些标签不会随着数据向左滚动

我尝试使用
setCategories

chart.xAxis[0].setCategories(cats, true);
其中cats是一个带有牺牲值的数组,将在移位期间删除,但是x轴标签仍然向左滚动,我不希望这样

谢谢

编辑:


我想我之前描述的在x轴上显示内容的方式并不理想。显示此时间(x)轴的更好方法是在最左侧显示-120,在最右侧显示0。这仍然需要一个非滚动的x轴,其中最左边的数据点大于-120,最右边的数据点大于0。

如果我在跟踪您,您想切换到系列的开头,但不要移动xAxis

您只需设置xAxis最小值:

    xAxis:{
        min: 0
    }

编辑

回应你的评论。我认为最简单的方法是自己移动数据,然后使用
setData
重新绘制序列

    newData = [];
    var seriesData = chart.series[0].data;
    // shift the data
    for (var i = 0; i < (seriesData.length - 1); i++){
        newData.push({x: seriesData[i].x, y: seriesData[i+1].y});
    }
    // new point for last
   newData.push({x: seriesData[seriesData.length - 1].x, 
                 y: Math.random() * 100});
   chart.series[0].setData(newData, true);
newData=[];
var seriesData=chart.series[0]。数据;
//转移数据
对于(变量i=0;i<(seriesData.length-1);i++){
push({x:seriesData[i].x,y:seriesData[i+1].y});
}
//最后的新点
push({x:seriesData[seriesData.length-1].x,
y:Math.random()*100});
chart.series[0].setData(newData,true);

.

谢谢你的回答。我真的希望事情就这么简单。但是,看看数据是如何聚集在右侧的?我所寻找的总是将零与最左边的数据点对齐,将120(两分钟)与最右边的点对齐,并且这些x轴标签不会滚动。但是,数据将使用Series.addPoint(或其他解决方案)从绘图的左侧滚动。谢谢。@nomadicME,请参阅上面的新答案。再次感谢。这个解决方案符合我的要求。这很有趣,这就是我最初认为我必须要做的,但后来我在addPoint中发现了shift功能。我是HC的新手,所以感谢您验证阻力最小的路径。