
本文详解如何通过配置 scales.x.display 和 scales.y.display 为 false,彻底隐藏 chart.js 中残留的 x/y 坐标轴线条(即“轴线”本身),解决仅关闭 grid 边框后仍可见的黑线问题。
在使用 Chart.js 创建无边框风格图表时,许多开发者会误以为只要设置 grid.showBorder: false 和 grid.display: false 就能完全消除所有边框——但实际中,X 轴和 Y 轴自身的线条(axis line)仍默认显示,这正是截图中那条顽固横线(Y 轴)或竖线(X 轴)的来源。
Chart.js 中的坐标轴由两部分组成:
- 网格线(grid lines):由 scales.{x/y}.grid 控制;
- 轴线(axis line):即坐标轴最外侧的基准线(如 Y 轴左侧直线、X 轴底部直线),由 scales.{x/y}.display 控制(注意:不是 showBorder)。
✅ 正确做法是:显式禁用整个坐标轴的渲染,而非仅隐藏其网格:
const options = {
type: 'line',
responsive: true,
maintainAspectRatio: false,
scales: {
x: {
display: false, // ← 关键:彻底隐藏 X 轴(含轴线+刻度+标签)
grid: {
display: false,
drawBorder: false // 推荐同时设为 false(v4+ 中 showBorder 已废弃)
},
ticks: {
display: false
}
},
y: {
display: false, // ← 关键:彻底隐藏 Y 轴(解决图中残留竖线/横线问题)
grid: {
display: false,
drawBorder: false
},
ticks: {
display: false
}
}
},
plugins: {
legend: { display: false },
tooltip: { enabled: true } // 可选:保留提示框提升可用性
}
};⚠️ 注意事项:
- showBorder 在 Chart.js v3.7+ 中已被弃用,应改用 drawBorder: false;
- 若只需隐藏轴线但保留刻度或标签,请勿设 display: false,而应单独控制 drawBorder: false + grid.drawBorder: false + ticks.display: false 组合;
- display: false 会一并隐藏该轴的所有视觉元素(线、刻度、标签),适用于极简设计;若需保留数据可读性,建议仅隐藏轴线:grid.drawBorder: false 并确保 borderWidth: 0(v4+ 中可通过 border: { width: 0 } 设置);
- 使用 plugins.legend.display: false 是正确的,但注意 v3+ 中旧版 legend: { display: false } 已被移除,必须放在 plugins 下。
总结:要真正实现「零边框」图表,必须区分 grid(网格)与 axis(轴本体)两个层级。display: false 是清除轴线最直接、最可靠的方式;配合 grid.display: false 和 ticks.display: false,即可获得干净、现代的无边框数据可视化效果。










