
在 Chart.js 3.8.2 中,当图表尺寸缩小时,Y 轴刻度会因 autoSkip: true(默认)自动跳过部分标签,导致 stepSize: 5 失效;只需显式设置 autoSkip: false 即可强制始终按指定步长完整显示所有刻度。
在 chart.js 3.8.2 中,当图表尺寸缩小时,y 轴刻度会因 `autoskip: true`(默认)自动跳过部分标签,导致 `stepsize: 5` 失效;只需显式设置 `autoskip: false` 即可强制始终按指定步长完整显示所有刻度。
Chart.js 默认启用 autoSkip: true,其目的是在空间受限时(如画布变窄、字体变大或刻度密集)自动隐藏部分刻度标签,以避免重叠和视觉混乱。但这一机制会覆盖你手动设定的 stepSize —— 即使配置了 stepSize: 5,当可用垂直空间不足时,Chart.js 仍可能跳过中间刻度,改用更大的间隔(如 15),造成刻度“跳跃”现象。
要彻底禁用该行为并确保 Y 轴严格按 stepSize: 5 显示全部刻度(例如从 -60 到 60 的每 5 个单位一个标签),必须显式关闭自动跳过功能:
options: {
scales: {
y: {
min: -60,
grid: {
color: ({ tick }) => tick.value === 0 ? 'black' : Chart.defaults.borderColor
},
ticks: {
stepSize: 5,
autoSkip: false, // ? 关键:禁用自动跳过
display: true
}
}
},
layout: {
padding: {
right: 10,
top: 10
}
}
}⚠️ 注意事项:
-
autoSkip: false会强制渲染所有符合stepSize的刻度标签,不考虑空间是否足够。若min/max范围过大或stepSize过小,可能导致标签严重重叠。建议配合合理设置min/max或使用callback自定义标签格式(如保留整数、添加单位等)提升可读性; - 此配置仅影响 标签显示,不影响网格线——网格线仍会基于
stepSize绘制,与autoSkip无关; - 在响应式场景中(如窗口缩放),若需兼顾清晰度与完整性,可结合
afterUpdate钩子动态调整max或precision,但对固定步长需求,autoSkip: false是最直接可靠的解法。
总结:stepSize 定义刻度间隔逻辑,而 autoSkip 控制标签渲染策略;二者需协同配置。将 autoSkip 显式设为 false,即可让 Chart.js 尊重你的 stepSize 意图,实现真正稳定的刻度展示。


















