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

Highcharts Gantt图表X轴标签不渲染、不旋转、不重叠问题求助

多层X轴标签显示异常问题

我需要实现一个包含三层X轴的图表:

  • 第一层(最下层):显示年份
  • 第二层:显示季度(对应3个月周期)
  • 第三层(最上层):显示月份

预期效果为年份、季度、月份层级分明,标签完整显示。但目前遇到两个核心问题:

  1. 空间不足时部分标签消失,设置allowOverlap: true和rotate: 90/-90均无效果,无法强制显示所有标签
  2. 缩放交互异常:初始放大时标签显示正常,缩小图表后再放大其他区域,多数月份标签无法显示,且并非空间不足导致:
    • 初始放大状态:所有月份标签完整显示
    • 缩小后:部分月份标签被隐藏
    • 再次放大后:多数月份标签仍未恢复显示

以下是我的X轴配置代码:

xAxis: [
    {
        tickInterval: 1000 * 60 * 60 * 24 * 30,
        labels: {
            allowOverlap: true,
            format: '{value:%b}',
            style: {
                fontSize: '8px'
            },
            rotate: 90,
        },
        units: [
            [
                'month',
                [1]
            ]
        ]
    },
    {
        currentDateIndicator: {
            width: 1,
            dashStyle: 'dash',
            color: 'red', 
            label: undefined,
        },
        tickInterval: 1000 * 60 * 60 * 24 * 30,
        units: [[
            'month',
            [3]
        ],],
        labels: {
            align: "center",
            allowOverlap: true,
            formatter: function AxisLabelsFormatterCallbackFunction() {
                var providedLocalDate = new Date(this.value);
                var realDate = new Date(providedLocalDate.getTime() + (providedLocalDate.getTimezoneOffset() * 60 * 1000));
                var month = realDate.getMonth();
                var QuarterNumber;
                var MonthInits = [];

                if (month >= 0 && month <= 2) {
                    QuarterNumber = 1;
                    MonthInits[0] = 'J';
                    MonthInits[1] = 'F';
                    MonthInits[2] = 'M';
                }
                if (month >= 3 && month <= 5) {
                    QuarterNumber = 2;
                    MonthInits[0] = 'A';
                    MonthInits[1] = 'M';
                    MonthInits[2] = 'J';
                }
                if (month >= 6 && month <= 8) {
                    QuarterNumber = 3;
                    MonthInits[0] = 'J';
                    MonthInits[1] = 'A';
                    MonthInits[2] = 'S';
                }
                if (month >= 9 && month <= 11) {
                    QuarterNumber = 4;
                    MonthInits[0] = 'O';
                    MonthInits[1] = 'N';
                    MonthInits[2] = 'D';
                }

                return `<div style="font-size: x-small; font-family:arial;font-weight:bold; color:${((QuarterNumber == 1 | QuarterNumber == 3) ? "#B86B00;" : "#0068B5;")};">QTR ${QuarterNumber}</div>`;
            },
        },
    },
    {
        tickInterval: 1000 * 60 * 60 * 24 * 365, // Year
        labels: {
            format: '{value:%Y}',
            style: {
                fontSize: '15px'
            }
        },
    },
],

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 05:15:29