Chart.js堆叠面积图grid.borderDash选项无效问题求助
Chart.js堆叠面积图网格虚线配置失效解决方法
使用Chart.js v4.1和vue-chartjs v5.0创建堆叠面积图时,修改y轴网格的borderDash和borderDashOffset选项毫无效果,但color、display、drawTicks等其他网格配置均正常生效。
原配置代码:
const options = { responsive: true, scales: { x: { grid: { display: false, }, ticks: { callback: function (val, index) { return index % 2 === 0 ? this.getLabelForValue(val) : ''; }, }, }, y: { border: { display: false, }, grid: { borderDash: [10, 10], drawTicks: false, }, stacked: true, ticks: { callback: function (val, index) { if (index === 0) { return ''; } return index % 2 === 0 ? '$' + compactCurrencyFormatter.format(+val) : ''; }, padding: 10, }, }, }, };
问题原因
Chart.js从v3版本开始重构了配置项结构,网格线的虚线配置属性名已变更:
- 原
borderDash→ 改为lineDash - 原
borderDashOffset→ 改为lineDashOffset
继续使用旧属性名不会被Chart.js识别,因此无法生效。
修改后的配置代码
将y轴网格配置中的borderDash替换为lineDash即可:
const options = { responsive: true, scales: { x: { grid: { display: false, }, ticks: { callback: function (val, index) { return index % 2 === 0 ? this.getLabelForValue(val) : ''; }, }, }, y: { border: { display: false, }, grid: { lineDash: [10, 10], // 此处修改为lineDash drawTicks: false, // 如果需要设置偏移,添加lineDashOffset // lineDashOffset: 5 }, stacked: true, ticks: { callback: function (val, index) { if (index === 0) { return ''; } return index % 2 === 0 ? '$' + compactCurrencyFormatter.format(+val) : ''; }, padding: 10, }, }, }, };
补充说明
如果需要对坐标轴的轴线(而非网格线)设置虚线样式,才需要在border配置中使用borderDash和borderDashOffset,例如:
y: { border: { display: true, borderDash: [5, 5] } }
内容的提问来源于stack exchange,提问作者duyn
相关产品推荐
相关产品推荐

