You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Chart.js实现无数据时隐藏并折叠X轴的方法

Chart.js动态折叠X轴刻度需求

我想用Chart.js制作图表,要求X轴仅显示存在对应数据的刻度。虽然可以提前预处理数据,移除无数据的标签及对应零值,但我需要的是图表展示后,隐藏/显示部分数据集时,图表能自动折叠并移除无数据的刻度。

预期效果示例

  • 所有数据集可见时:
    包含四年数据的图表
  • 隐藏两个数据集后,部分月份从X轴消失:
    仅显示两个数据集的图表

注:该效果是通过Excel修改输入数据模拟得到的

我没有找到能直接实现此功能的轴属性——刻度可以单独显示或隐藏,但无法让轴上的空间折叠以消除空白。想问问能不能通过数据集隐藏/显示的回调函数来实现?

补充说明

基于他人提供的示例,我搭建了一个可运行的Demo,但隐藏2021和2022年的数据集后,部分月份仍处于空白状态,我希望这些无数据的月份能直接从图表中移除。

const config = {
    type: "bar",
    data: {
        labels: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'],
        datasets: [
            {
                label: '2020',
                data: [null, null, null, 2, 10,25,31,28,10,2, null, null],
                backgroundColor: 'red'
            },
            {
                label: '2021',
                data: [1, 4 , 4, 6, 8, 23, 28, 30, 5, 1, null, null],
                backgroundColor: 'blue'
            },
            {
                label: '2022',
                data: [1, 4 , 4, 4, 12, 30, 26, 30, 30, 10, 4, 4],
                backgroundColor: 'green'
            },
            {
                label: '2023',
                data: [1, null , null, 4, 20, 29, 31, 31, 10, null, null, 2],
                backgroundColor: 'orange'
            },
        ]
    },
    options: {
        maintainAspectRatio: false,
        barPercentage: 0.99,
        categoryPercentage: 0.95,
        skipNull: true,
        scales:{
            x: {
                ticks: {
                    minRotation: 90
                }
            }
        },
        plugins: {
            legend: {
                display: true
            },
            title: {
                display: true,
                text: 'Lifeguard working days',
            }
        }
    }
};

const chart = new Chart('myChart', config);

另外,之前针对我另一问题的解决方案,并不适用于这种不同数据集共享X轴标签的场景。


内容的提问来源于stack exchange,提问作者nhaggen

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 05:07:10