gpt4 book ai didi

javascript - Chart.js : Get Hidden Datasets

转载 作者:行者123 更新时间:2023-11-28 14:31:09 26 4
gpt4 key购买 nike

我有一个使用 Chart.js 的多系列折线图,并且我一直在尝试找出如何从 Chart.js 对象获取隐藏数据集。我想在图表之外的表格中显示过滤后的数据。

我尝试为每个数据集添加一个隐藏变量,但我仍然无法检索隐藏的数据集。

最佳答案

如何隐藏数据集?
我刚刚检查了Chart.js文档,发现它们有隐藏选项。
那么,为什么你看不到隐藏选项呢?

// test chart.
var data = {
labels: ["Item1", "Item2", "Item3", "Item4", "Item5", "Item6", "Item7"],
datasets: [
{
label: "line-1",
borderColor: 'rgb(255, 0, 0)',
data: [20, 26, 12, 43, 33, 21, 29],
// hidden
hidden: true
},
{
label: "line-2",
borderColor: 'rgb(0, 255, 0)',
data: [10, 3, 24, 43, 23, 11, 51],
},
{
label: "line-3",
borderColor: 'rgb(0, 0, 255)',
data: [16, 31, 22, 53, 24, 27, 69],
}
]
};

// For hidden Label. (I don't know why datasets hasn't this option.)
var options = {
legend: {
labels: {
filter: function(item, chart) {
return !item.hidden;
}
}
}
};

// Create the chart.
var myLineChart = new Chart($("#chart"), {
type: 'line',
data: data,
options: options
});

// Get the hidden datasets based on the hidden column.
var hiddenDatasets = $.grep(myLineChart.data.datasets, function(line) {
return line.hidden;
});

// See console.
console.log(hiddenDatasets);

Here's jsfiddle.

已更新我发现有一个有用的方法。

var hiddenDatasets = [];
for(var i=0; i<myLineChart.data.datasets.length; i++) {
// It seems some value updated in metadata, but there is a method available.
// var metaDatasets = myLineChart.getDatasetMeta(i);
if (!myLineChart.isDatasetVisible(i)) {
// or myLineChart.getDatasetMeta(i);
hiddenDatasets.push(myLineChart.data.datasets[i]);
}
}
// See console.
console.log(hiddenDatasets);

jsfiddle.

关于javascript - Chart.js : Get Hidden Datasets,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51529163/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com