2016-11-11 87 views
1

我有多个图表显示不同的数据。但它们都是相同的对象类型e.ge [acc1,acc2,acc3]。因此,我想知道是否可以在某个页面上设置一个父图例,然后单击它将显示/隐藏所有图表中的所有相应数据集?ChartJS,多个图表合并图例

+0

这可能会有所帮助[图表 - 多个图表与单个图例控制](https://codepen.io/shivabhusal/pen/XazwVq?editors=1010) – illusionist

回答

1

我认为你可以隐藏除一个图表以外的图表的所有图例,并实现一个自定义onClick函数来处理对该图例的点击并隐藏每个图表的所有相应数据集。

目前的onClick实施看起来是这样的:

onClick: function(e, legendItem) { 
     var index = legendItem.datasetIndex; 
     var ci = this.chart; 
     var meta = ci.getDatasetMeta(index); 

     // See controller.isDatasetVisible comment 
     meta.hidden = meta.hidden === null ? !ci.data.datasets[index].hidden : null; 

     // We hid a dataset ... rerender the chart 
     ci.update(); 
    } 

此功能需要options.legend.onClick被定义。要做到这一点,你需要重写上面的函数来实现一个循环,选择所有需要的图表并选择元,隐藏它并更新图表。