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

ChartistJS时间类型X轴自定义区间与刻度显示异常问题

ChartistJS动态图表X轴显示异常问题及解决方案

需求说明

开发Y轴为数值、X轴为4位军事格式时间的动态图表,两轴上下限均通过JS动态设置,要求:

  • X轴刻度范围为09:00~22:00,每20分钟展示一个刻度
  • 数据点可落在1125、1743等非刻度时间点上,位置显示准确

初始异常表现

仅能实现刻度正确或数据点位置正确,无法二者兼得,初始配置(数据点位置正确但X轴异常)如下:

axisX: {
    type: Chartist.AutoScaleAxis,
    labelInterpolationFnc: function(value) {
      return moment(value).format('HHmm');
    },
    showLabel: true,
    showGrid: true,
    stretch: true
},

后续参数设置代码:

vm.chartOptions.axisX.ticks = tickArray;
vm.chartOptions.axisX.divisor = totalTicks;
vm.chartData.series = vm.chartSeries;

其中tickArray为预设刻度数组[0900, 0920, 0940, ...],vm.chartSeries数据格式如下:

0: {x: Fri Aug 06 2021 14:03:00 GMT-0500 (Central Daylight Time), y: 15}
1: {x: Fri Aug 06 2021 18:00:00 GMT-0500 (Central Daylight Time), y: 35}
2: {x: Fri Aug 06 2021 22:30:00 GMT-0500 (Central Daylight Time), y: 42}

此配置下X轴从1357开始,按10/11分钟交替递增,仅覆盖到比最后一个数据点稍大的位置,未按设置的0900到2200范围展示,尝试将时间处理为纯数字、使用第三方自定义插件等方案均无效。

中间调整过程的问题

  • 第一次调整后:X轴刻度样式符合要求,但区间仅覆盖首个数据点前到末尾数据点后,忽略了0900到1400的区间,也未延伸到预设的最终刻度。
  • 第二次调整后:X轴全区间显示正常,但所有数据点都被挤压到图表中间。

最终解决方案

定位到问题根源为low和high参数配置错误,修正两个参数为对应X轴范围的最小、最大时间值后,刻度范围、数据点位置均显示正常。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 16:06:01