AmCharts Legend,如何在图表中的数据更改上重新单击未单击的图例

AmCharts Legend, How to reclick an unclicked legend on Data changes in the chart

我有一个来自 Am 图表的 divergent stacked bar chart,我为其构建了自定义过滤器,过滤器通过用新的预先准备好的 JSON 数据替换整个 amChart.data 来更改数据。 我正在使用 Angular 8 和打字稿,没有后端,JSON 数据保存在资产中并由服务加载,然后传递到图表。

这些是相关的代码片段,不幸的是我不能分享整个代码。

 @Input() dataToDisplay: EventEmitter<any>;

 private amChart: any;

constructor(private wh: WarehouseService) {}

ngOnInit() {
 this.currentYearDisplayed.subscribe(async year => {
  await this.wh.loadData(year);
  this.loadDataIntoChart();
});
this.dataToDisplay.subscribe(data => {
  if (this.amChart) {
    this.amChart.data = data;
    this.amChart.invalidateData();
  }
});

}

  loadDataIntoChart() {
    if (this.amChart) {
      this.amChart.data = this.wh.filteredSet;
    }
  }

The initial chart looks like this

我取消了Legend Aufwand,深蓝色的线消失了。 我单击一个更改数据并重新加载的过滤器(而 Aufwand Legend 仍未被点击)

Chart then looks like this

我的图例代码是

   // Legend
    this.amChart.legend = new am4charts.Legend();
    this.amChart.legend.position = "right";
    this.amChart.legend.width = 100;

我一直在尝试做的是,在加载数据之前简单地重新单击所有关于数据更改的非活动图例,我在文档中或此处的 Whosebug 中找不到合适的设置。

感谢任何帮助,并提前致谢。

您可以通过 API 对其对象调用 show() 方法来取消隐藏系列。

以下将取消隐藏所有系列:

this.amChart.series.each(function(series) {
  series.show();
});