
Chart.js 3.0+ 彻底重构了配置结构,旧版 xAxes/yAxes 数组语法和 scaleLabel 已废弃,需改用扁平化的 x/y 单对象配置及 title.text 属性才能正常显示坐标轴标题。
chart.js 3.0+ 彻底重构了配置结构,旧版 `xaxes`/`yaxes` 数组语法和 `scalelabel` 已废弃,需改用扁平化的 `x`/`y` 单对象配置及 `title.text` 属性才能正常显示坐标轴标题。
在 Chart.js v3.x(包括 v3.0.0 及后续版本)中,坐标轴配置发生了重大变更:不再支持 v2.x 的 xAxes/yAxes 数组写法,也不再识别 scaleLabel 配置项。若沿用旧语法,轴标题将完全失效,甚至可能意外创建重复坐标轴。
✅ 正确配置方式如下(精简、语义清晰):
var myChart0 = new Chart("myChart0", {
type: "line",
data: plotData0,
options: {
responsive: true,
plugins: {
legend: {
position: "bottom"
}
},
scales: {
x: {
display: true,
title: {
display: true,
text: "X-Axis Label" // ✅ 使用 text(非 labelString)
}
},
y: {
display: true,
title: {
display: true,
text: "Y-Axis Label"
}
}
}
}
});
? 关键变更说明:
使用 JSON Schema 验证 JSON 数据,从示例 JSON 生成 schema,并将其转换为 TypeScript 接口、Python 数据类或 Markdown 文档。
- scales.x 和 scales.y 是单个配置对象(不再是数组),对应默认的横纵轴;
- title 是一级属性(取代已移除的 scaleLabel);
- title.text 为必填字符串(labelString 已无效);
- plugins.legend 替代已废弃的顶层 legend(v3+ 将所有非核心功能归入 plugins);
⚠️ 常见错误提醒:
- ❌ 错误:xAxes: [{ scaleLabel: { ... } }] → 控制台报错或静默忽略;
- ❌ 错误:title: { display: true, labelString: "..." } → 标题不渲染;
- ✅ 推荐:始终使用 scales.x / scales.y,避免多轴歧义;如需自定义轴 ID,可显式指定 id: 'x1' 并在 scales 下声明。
? 小技巧:若需调整标题字体、颜色或对齐,可在 title 内添加 font, color, align 等属性(详见 Chart.js 官方文档 — Axis Title)。
升级至 v3.x 后,请务必查阅迁移指南,多数“功能消失”问题实为配置语法未同步更新所致。










