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();
});
我有一个来自 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();
});