是否有可能只隐藏chartjs中的某些数据集图例?我知道有可能隐藏所有
options: {
legend: {
display: false
简短的回答:是的,这是可能的。不幸的是,它并不像开发人员那样简单。
如果您知道图例中显示的项目的text
值是什么,那么您可以将其过滤掉。通过阅读Chart.js文档后,我发现Legend Label Configuration部分详细介绍了可用于“过滤掉图例项目”的filter
函数,尽管此函数必须在父图表选项对象上设置,而不是作为选项在数据集本身:
const chart = new Chart(ctx, {
type: 'bar',
data: data,
options: {
legend: {
labels: {
filter: function(item, chart) {
// Logic to remove a particular legend item goes here
return !item.text.includes('label to remove');
}
}
}
}
});
现在,每当数据发生变化并且通过chart.update()
更新图表时,就会调用此过滤器函数。
为了方便起见,我已经在jsfiddle中设置了它,供您玩。
注意:此解决方案是围绕ChartJS 2.7.1版的API设计的。未来版本可以改进对数据集图例标签的控制。