Highcharts Gantt图表X轴标签不渲染、不旋转、不重叠问题求助
多层X轴标签显示异常问题
我需要实现一个包含三层X轴的图表:
- 第一层(最下层):显示年份
- 第二层:显示季度(对应3个月周期)
- 第三层(最上层):显示月份
预期效果为年份、季度、月份层级分明,标签完整显示。但目前遇到两个核心问题:
- 空间不足时部分标签消失,设置
allowOverlap: true和rotate: 90/-90均无效果,无法强制显示所有标签 - 缩放交互异常:初始放大时标签显示正常,缩小图表后再放大其他区域,多数月份标签无法显示,且并非空间不足导致:
- 初始放大状态:所有月份标签完整显示
- 缩小后:部分月份标签被隐藏
- 再次放大后:多数月份标签仍未恢复显示
以下是我的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
相关产品推荐
相关产品推荐

