如何在 angular 5/6 中刷新或重新加载 highchart 中的数据

How can refresh or reload data in highchart in angular 5/6

我在 angular6 中使用 highcharts。我想使用 setinterval 重新加载数据。我找不到合适的解决方案。

Chartcomponent.ts

import { Chart, Highcharts } from 'angular-highcharts';

ngOnInit() {
  this.loaded = false;
  this.rowData = [[0, 2], [1, 2], [2, 3], [4, 4], [4, 5]];
  this.loadChart(this.data.data);
}

loadChart(data): any {
  this.highChartsOptions = {
    chart: { type: this.graphType },
    title: { text: '' },
    legend: { enabled: false },
    plotOptions: { series: { dataLabels: { enabled: true } } },
    series: [{ name: 'random series', data: data }]
  };
  this.handleIntervals();
}

handleIntervals(): void {
  setInterval(() => {
      console.log(this.rowData[this.rowData.length - 1]);
      let rowY = this.rowData[this.rowData.length - 1];
      let y = rowY[0];
      this.rowData.push([parseInt(y) + 1, 10]);
      // this.highChartsOptions.series[0].data = this.rowData;
      // this.loadChart( this.rowData);
  }, 5000);
  // const subscribe = source.subscribe(this.loadChart());
}

您需要从您在 setInterval 中获得 this.data.data 的位置调用 服务

Angular-当 this.highChartsOptions.series 中的数据更新时,highcharts 会自动刷新。

如果要添加新系列,请使用

 this.chart.addSerie({})

如果要更新数据

 this.chart.series[0].setData(rowData);

检查文档:https://www.npmjs.com/package/angular-highcharts 示例:https://stackblitz.com/edit/angular-9nkrgd

最后我解决了这个问题。我认为这不是正确的解决方案,但它工作正常。 https://stackblitz.com/edit/highchart-angular-reload-data