如何使用 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 替换为我之前拥有的先前数据集.
我有图表中的数据集,我想重新组织以使其看起来更好。
这就是我的图表 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 替换为我之前拥有的先前数据集.