我从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仍然未取消)
我的图例代码是
// Legend
this.amChart.legend = new am4charts.Legend();
this.amChart.legend.position = "right";
this.amChart.legend.width = 100;
我一直试图做的是,在加载数据之前,只需在数据更改上重新单击所有不活动的图例,我就无法在文档中或在stackoverflow中找到正确的设置。
感谢您的任何帮助,并在此先感谢您。
您可以通过在其对象上调用show()
方法来通过API取消隐藏系列。
以下内容将取消隐藏所有系列:
this.amChart.series.each(function(series) {
series.show();
});