【问题标题】:how to filter dataset from labels using ChartJS如何使用 ChartJS 从标签中过滤数据集
【发布时间】:2019-12-09 20:26:11
【问题描述】:

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

这将是我的图表 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() 只是 %

【问题讨论】:

  • 完成!,我试图把它放在 jsfiddle 上,但它给了我一个错误:/ 提前感谢您的时间@WhiteHat
  • 哦,非常感谢,这对我很有帮助,因为我整天都在努力解决这个问题。

标签: javascript canvas charts chart.js chartjs-2.6.0


【解决方案1】:

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

【讨论】:

  • 这是我想出的方法,也许可以在这里为其他人分享该代码。我昨天没来办公室,很高兴你能解决...
猜你喜欢
  • 1970-01-01
  • 2020-07-17
  • 1970-01-01
  • 1970-01-01
  • 2021-10-31
  • 1970-01-01
  • 2018-05-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多