如何使用 ChartJS 从标签中过滤数据集

how to filter dataset from labels using ChartJS

我有图表中的数据集,我想重新组织以使其看起来更好。

这就是我的图表 OriginalChart

这将是我的图表,当我从中删除 2 个元素标签时,我的想法是重新组织所有内容并删除带有红色框且值为 0 的元素,或者换句话说,仅显示带有值不同于 0 ... ChartWithDataToOrganize

这个想法很简单,只是过滤所有等于 0 的数据值,但我真的不知道是否有工具可以做到这一点,而且当您再次显示所有数据时也可以反转它。 labels

我了解了如何在单击图例时隐藏元素,但是我如何实现隐藏其中 == 0 的数据,然后在我取消隐藏它时将其反转并像第一次看到它一样。 .

legend: {
                            display: true,
                            onClick: function(e, legendItem) {
                            var index = legendItem.datasetIndex;
                            var actualChart = this.chart;
                            //If the actual label is not hidden, I set it up as false, otherwise is null
                            var alreadyHidden = (actualChart.getDatasetMeta(index).hidden === null) ? false : actualChart.getDatasetMeta(index).hidden;
                            actualChart.data.datasets.forEach(function(e, i) {
                                var meta = actualChart.getDatasetMeta(i);
                                if (i === index) {//I check if the selected label is already hidden otherwise I hide it
                                    if(!alreadyHidden){
                                        meta.hidden = true;
                                    }else{
                                        meta.hidden = null;
                                    }
                                }
                            });
                            actualChart.update();
                            },

                        },

我正在使用 ChartJs 2.8.0 在 Chrome

我没有输入任何数据,因为标签只是名称,其他 returnData() 只是 %

我设法通过创建我的 datasetsLabels 的实际副本的副本并设置新配置来做到这一点,如果我再次显示所选标签,我只是将新的 dataSetLabel 替换为我之前拥有的先前数据集.