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

如何在amCharts 4中设置DateAxis的X轴总像素/列数为36?

实现AmCharts DateAxis固定36列的方案

要让DateAxis对应36个等宽列,核心是把目标时间范围平均分成36份,通过设置时间间隔和网格参数实现,具体步骤如下:

  1. 明确完整时间范围:
    你当前只设置了max为23:59,需要补充min为00:00,确保时间范围是完整的24小时,这样才能准确计算分段。

  2. 计算并设置时间间隔:
    24小时总时长为86400000毫秒,分成36份的话,每份间隔是86400000 / 36 = 2400000毫秒,也就是40分钟。通过baseInterval设置这个间隔,让轴自动生成36个分段。

  3. 强制网格数量:
    配置renderer.grid.template.count为36,确保视觉上渲染出36列网格。

修改后的完整代码:

let dateAxis = chart.xAxes.push(new am4charts.DateAxis());
dateAxis.renderer.labels.template.disabled = true;
dateAxis.strictMinMax = true;
// 设置完整的24小时时间范围
dateAxis.min = moment("00:00", "HH:mm").toDate().getTime();
dateAxis.max = moment("23:59", "HH:mm").toDate().getTime();
// 设置每段间隔为40分钟,24小时正好分成36份
dateAxis.baseInterval = { timeUnit: "minute", count: 40 };
// 强制网格数量为36,确保列数符合要求
dateAxis.renderer.grid.template.count = 36;

如果你的时间范围不是24小时,只需要调整min/max,然后按「总时长毫秒数 / 36」计算出对应时间间隔,再匹配timeUnit和count即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 13:15:25