【问题标题】:highchart remove first pointhighchart 删除第一点
【发布时间】:2018-09-12 07:55:21
【问题描述】:

我每 1 秒在柱形图中添加点。我已经使用 addPoint 函数来串联添加点。 但是当点数> 5时,我想删除第一个点。 请看下面的代码:

  setInterval(() => {
          let data = self.loadData();
          let seriesData = this.userOptions.series[0].data;
          let newDataRejected = seriesData;
          if (seriesData.length > 5) {
            self.chart.series[0].data[0].remove();#ERROR
          }
          data.subscribe(el => {           
            this.series[0].addPoint([el.x, el.rejected]);              
          })
        }, 1000);

但在 LINE #ERROR 中我收到错误 Cannot read property '0' of undefined。 如何在专栏中添加和删除积分?

【问题讨论】:

  • 如果您的总体目标是始终在图表中显示 x 个点,则最好在 addPoint function 中使用 shift。您将设置if(length < 5) {addPoint(..,true, false)} else {addPoint(...,true,true)}。看起来像这样:jsfiddle.net/ewolden/9pa5gjqw/26
  • self.chart.seriesself.chart.series[0].data 未定义。您应该检查self.chart 及其属性。
  • 谢谢@ewolden。这是有效的!

标签: angular highcharts


【解决方案1】:

与其手动删除第一个点,更好的解决方案是使用addPoint 函数的 shift 属性。

然后你需要做:

setInterval(() => {
  let data = self.loadData();
  let seriesData = this.userOptions.series[0].data;
  let newDataRejected = seriesData;
  if (seriesData.length > 5) {
    data.subscribe(el => {           
      this.series[0].addPoint([el.x, el.rejected], true, true);              
    })
  } else {
    data.subscribe(el => {           
      this.series[0].addPoint([el.x, el.rejected], true, false);              
    })
  }

}, 1000);

工作示例: https://jsfiddle.net/ewolden/1c5hkj8g/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-03
    • 1970-01-01
    相关资源
    最近更新 更多