amCharts具有大量数据集的多个系列

问题描述

我正在使用角度为6的amCharts4。我试图创建具有多个序列的时间序列图。我最多可以有50个系列,每个系列的数据点最多可以有8600个。

我创建了一个类似场景的笔。 https://codepen.io/shomapd/pen/GRZMMrE 在这里工作正常,但是当我将相同的代码与我的angular 6应用程序集成时,整个页面将冻结。

有人可以帮我找到问题吗?

for(let i = 1; i<=2; i++) {
am4core.options.minpolylinestep = 5;
var chart = am4core.create("chartdiv" + i,am4charts.XYChart);
let numberOfSeries = 50;
let numberOfDataPoints = 8600;
var dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.groupData = true;
dateAxis.groupCount = 1000;
var valueAxis = chart.yAxes.push(new am4charts.ValueAxis());
chart.cursor = new am4charts.XYCursor();
chart.data = generateData();
createSeries();
function createSeries() {
  for(let s=0; s<numberOfSeries; s++) {
    var series = chart.series.push(new am4charts.Lineseries());
    series.datafields.dateX = "date";
    series.datafields.valueY = "value" + s;
    // series.data = generate(s);
    series.tooltipText = "{valueY}"
  }
 }
function generateData() {
  var data = [];
  var seed = 1;
  var firstDate = new Date().setHours(0,0);
  var start = 0;
  for(var i = 0; i < numberOfDataPoints; i++) {
    seed = i;
    start += Math.round(random(seed)) - 2
    const index = data.push({
      date: new Date(2020,i)
    });
    for(let s=0; s<numberOfSeries; s++) {
      data[index - 1]['value' + s] = start * (s+1)
     }
  }
  console.log(data);
 
  return data;
}
function random(seed) {
        var x = Math.sin(seed++) * 10000;
        return x - Math.floor(x);
}
}```

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)