在chartjs中是否可以隐藏某些数据集图例?

问题描述 投票:11回答:1

是否有可能只隐藏chartjs中的某些数据集图例?我知道有可能隐藏所有

options: {
    legend: {
        display: false
chart.js legend
1个回答
25
投票

简短的回答:是的,这是可能的。不幸的是,它并不像开发人员那样简单。

如果您知道图例中显示的项目的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设计的。未来版本可以改进对数据集图例标签的控制。

© www.soinside.com 2019 - 2024. All rights reserved.