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

问题描述 投票:0回答:1

我从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

我取消单击图例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;

我一直试图做的是,在加载数据之前,只需在数据更改上重新单击所有不活动的图例,我就无法在文档中或在stackoverflow中找到正确的设置。

感谢您的任何帮助,并在此先感谢您。

angular typescript amcharts amcharts4 legend-properties
1个回答
0
投票

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

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

this.amChart.series.each(function(series) {
  series.show();
});
© www.soinside.com 2019 - 2024. All rights reserved.