javascript - Highcharts:一次更新多个系列,以获得更流畅的动画

标签 javascript highcharts

我有一个包含三个系列的 highcharts 样条图:

series: [
  {
    name: "item1",
    data: []
  },
  {
    name: "item2",
    data: []
  },
  {
    name: "item3",
    data: []
  }
];

我定期获取新数据,然后使用Series.setData依次更新每个系列。函数,像这样:

function update(data) {
  const s = myChart.series;
  for (let i = 0; i < s.length; i++) {
    s[i].setData(data[s[i].name]);
  }
}

其中data是一个像这样的对象:

data = {
  'item1': [1, 2, 3],
  'item2': [1, 2, 3],
  'item3': [1, 2, 3]
}

我更愿意一次更新所有数据,但这似乎不可能。当我像这样快速连续更新所有三个系列时,动画非常不稳定。

最佳答案

我找到了一个似乎不错的解决方案:

function update(data) {
  const s = myChart.series;
  for (let i = 0; i < s.length; i++) {
    console.log(i);
    s[i].setData(data[s[i].name], false);  // add "redraw=false" argument
  }
  myChart.redraw(); // trigger redraw at end of loop
}

false 添加到 setData 函数可防止 Highcharts 在每次更改后重新绘制。当我到达循环末尾时,我手动触发重绘。

这使得更新更加顺利!

关于javascript - Highcharts:一次更新多个系列,以获得更流畅的动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53529764/

相关文章:

javascript - HighCharts JS - 在散点图上获取多个线性 basemap

javascript - Highstock 具有多个系列,即使我禁用,工具提示也会跟随点

javascript - 如何创建仅包含 1 个系列数据且背景为圆形的饼图

javascript - 确定返回值的类型

javascript - 如何用数字划分 div 并将结果值作为字体大小

javascript - 在特定时刻重定向页面

javascript - 如何找到页面上的所有单词,以及每个单词有多少个

javascript - 在 TinyMCE 中禁用 Javascript

javascript - 如何更改饼图 Highcharts 中的字体属性?

javascript - 如何使用 Angular JS 在 Highcharts 中设置 'lang' 属性?