Angular Chart.js在8个系列的500+;要点

Angular Chart.js在8个系列的500+;要点,angular,chart.js,Angular,Chart.js,我正试图用chart.js绘制8个系列的折线图,但初始绘制、通过单击图例打开/关闭seria和/或向系列添加一些点都非常缓慢。有时需要10秒钟。我是否在选项中缺少了一些神奇的“加速特性”,或者这是正常的 事实上,我需要实时绘制和更新大约10个系列,每个系列包含2000个点,是否有合理的更新时间 这就是我正在玩的示例:应用中所述的图表选项,以在Firefox 67中呈现一个没有明显性能问题的图表 let labels=[]; 设data1=[]; 设data2=[]; for(设i=0;i

我正试图用chart.js绘制8个系列的折线图,但初始绘制、通过单击图例打开/关闭seria和/或向系列添加一些点都非常缓慢。有时需要10秒钟。我是否在选项中缺少了一些神奇的“加速特性”,或者这是正常的

事实上,我需要实时绘制和更新大约10个系列,每个系列包含2000个点,是否有合理的更新时间


这就是我正在玩的示例:

应用中所述的图表选项,以在Firefox 67中呈现一个没有明显性能问题的图表

let labels=[];
设data1=[];
设data2=[];
for(设i=0;i<2000;i++){
标签。推送(“l”+i);
data1.push(Math.floor(Math.random()*100));
数据2.push(Math.floor(Math.random()*100));
}
var ctx=document.getElementById('canvas').getContext('2d');
var图表=新图表(ctx{
//我们要创建的图表类型
键入:“行”,
//我们的数据集的数据
数据:{
标签:标签,
数据集:[{
标签:“我的第一个数据集”,
//背景颜色:“rgb(255,99,132)”,
边框颜色:“rgb(255,99,132)”,
数据:数据1
}, {
标签:“我的第一个数据集”,
//背景颜色:“rgb(255,255,132)”,
边框颜色:“rgb(255、255、132)”,
数据:数据2
}]
},
//配置选项在这里
选项:{
动画:{
持续时间:0//一般动画时间
},
悬停:{
animationDuration:0//悬停项目时的动画持续时间
},
responsiveAnimationDuration:0,//调整大小后的动画持续时间
要素:{
行:{
张力:0//禁用贝塞尔曲线
}
}
}
});


我只是想知道angular是否可以处理这个问题,或者只是库无法处理您的数据集。您是否可以为相同的图表和数据添加另一个演示环境,但只使用纯js?为了比较lib自身的性能与这么多数据点的性能,您的数据不太可能有意义。我将应用一些逻辑来分组并平均数据。我做了一个测试,以表明性能同样糟糕。不幸的是,这些图表中有意义的部分是由客户而不是我决定的,他们希望这样。我现在正在玩另一个库——
Flot
(著名的Grafana使用它)。即使使用8x1350点,它的速度也要快10倍。如果您感兴趣,请看一看:我最终放弃了用于uPlot的Chart.js。这个页面有一个指向演示的链接,显示它显示了10万个点,可以轻松地进行实时平移和缩放:(我将计数增加到100万,即使在那时,它也工作得很好!)