我们如何将图例用作AmCharts4中的过滤器?

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

当前,在amchart4中,图例可用于在单击时显示/隐藏目标系列。我想要点击图例上的行为:

  1. 不隐藏单击的系列。
  2. 隐藏除单击的系列以外的所有其他系列,以便仅显示单击了其图例的系列。

[这个问题位于older question定位amcharts3的背面。但是,由于v4与v3明显不同,因此答案不起作用。

基于文档here,似乎以下应该起作用:

series1.events.on("hidden", function() {
  series2.hide();
  series3.hide();
// but when I run series1.show() in order to mimic series1 to not hide, I get a max call size exceeded msg
});

此外,根据this,可以完全禁用图例上的切换-但它在购物车级别而不是系列级别有效。

谢谢。

javascript amcharts amcharts4
1个回答
0
投票

这是您的操作方式:https://codepen.io/team/amcharts/pen/285b315ff30a2740fdbf72f27230711c

为了避免这样,您需要使itemContainers不可切换:

chart.legend.itemContainers.template.togglable = false;

chart.legend.itemContainers.template.events.on("hit", function(event){
    var target = event.target;

    chart.legend.itemContainers.each(function(item){
        if(item != target){
            item.isActive = true;
            item.dataItem.dataContext.hide();
        }
    })
    target.isActive = false;
    target.dataItem.dataContext.show();
})
© www.soinside.com 2019 - 2024. All rights reserved.