Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angular/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Highcharts addPoint()在快速间隔中调用,导致图形的形状折叠_Javascript_Angular_Highcharts_Highcharts Ng_Angular2 Highcharts - Fatal编程技术网

Javascript Highcharts addPoint()在快速间隔中调用,导致图形的形状折叠

Javascript Highcharts addPoint()在快速间隔中调用,导致图形的形状折叠,javascript,angular,highcharts,highcharts-ng,angular2-highcharts,Javascript,Angular,Highcharts,Highcharts Ng,Angular2 Highcharts,//加载图表的步骤 loadChart():无效{ 让initialCardiacSamples=this.cardiacSamples; this.ecgChart=Highcharts.chart(this.el.nativeElement{ 图表:{ 键入:“行”, 背景颜色:“#4d2700”, }, 标题:{ 文本:“使用Highcharts JS的心电图图”, 风格:{ 颜色:“#ffffff” } }, xAxis:{ 键入:“编号”, 像素间隔:150 }, 亚克斯:{ 标题:{

//加载图表的步骤
loadChart():无效{
让initialCardiacSamples=this.cardiacSamples;
this.ecgChart=Highcharts.chart(this.el.nativeElement{
图表:{
键入:“行”,
背景颜色:“#4d2700”,
},
标题:{
文本:“使用Highcharts JS的心电图图”,
风格:{
颜色:“#ffffff”
}
},
xAxis:{
键入:“编号”,
像素间隔:150
},
亚克斯:{
标题:{
文字:“振幅”,
风格:{
颜色:“#ffffff”
}
},
网格线宽:0,
minorGridLineWidth:0,
最高:600
},
系列:[{
名称:“ECG数据”,
数据:原始样本,
颜色:“#ffffff”
}]
});
}
//每300mili秒更新图表/调用更新以获取下一个数据点
updateChart():void{
让xAxisPoint=this.ecgChunkSize;
this.interval=setInterval(()=>{
//调用addData()函数将下一个跟踪点添加到图形中
this.addDataPoint(this.ecgChunkSize,xAxisPoint);
this.ecgChunkSize=this.ecgChunkSize+1;
xAxisPoint=xAxisPoint+1;
if(this.ecgChunkSize==this.ecgFileSize){
this.ecgChunkSize=0;
}
}, 300);
}
//方法添加数据并更新图表以使图形实时
addDataPoint(索引:编号,xAxisPoint:编号):无效{
设iy=this.cardiacSamples[index].y;
this.ecgChart.series[0].addPoint([xAxisPoint,iy],true,true);
//调用上面的addDataPoint(),并将图表和shift重绘为true
}
.chart容器{
显示:块;
保证金:0;
位置:相对位置;
高度:计算(100vh-450px-40px);
填充顶部:0;
}

我想这和github上的问题是一样的:

这可能是由动画引起的-默认情况下,动画持续时间为1秒。如果每100毫秒更新一次图表,则也要更改动画持续时间:

this.ecgChart.series[0].addPoint([xAxisPoint, iy], true, true, { duration: 95 });
注意:
动画持续时间应该小于更新间隔,因此我们确信动画将结束。

我还没有在这里输入完整的代码。但插入的代码足以理解初始加载和定期更新图表的场景。实际上是通过signal.Fus从后端获取数据。。。谢谢你的解决方案。是的,这与我在GitHub中以及在问题部分提出的问题相同。设置动画持续时间后,它工作正常。谢谢!!