如何使用 chartjs 删除 X 轴上的多余线条?
How to remove excess lines on X axis using chartjs?
我们如何从 X 条网格线中删除这些 额外的 条线?我已经 ,但似乎只是为了删除多余的 y 网格线。有人知道怎么做吗,如下图?
我尝试切换下面的 y 和 x,但它似乎隐藏了所有网格线,而不是仅隐藏了图表区域的外部。
var x_axis = chartInstance.scales['x-axis-0'];
var topY = chartInstance.scales['y-axis-0'].top;
var bottomY = chartInstance.scales['y-axis-0'].bottom;
x_axis.options.gridLines.display = false;
x_axis.ticks.forEach(function (label, index) {
if (index === 0) return;
var x = x_axis.getPixelForValue(label);
ctx.save();
ctx.beginPath();
ctx.strokeStyle = x_axis.options.gridLines.color;
ctx.moveTo(x, topY);
ctx.lineTo(x, bottomY);
ctx.stroke();
ctx.restore();
});
https://www.chartjs.org/samples/latest/scales/gridlines-display.html
查看 drawticks false 选项
scales: {
yAxes: [{
gridLines: {
display: true,
drawBorder: true,
drawOnChartArea: true,
drawTicks: false,
}
ticks: {
min: 0,
max: 100,
stepSize: 10
}
}]
}
我们如何从 X 条网格线中删除这些 额外的 条线?我已经
我尝试切换下面的 y 和 x,但它似乎隐藏了所有网格线,而不是仅隐藏了图表区域的外部。
var x_axis = chartInstance.scales['x-axis-0'];
var topY = chartInstance.scales['y-axis-0'].top;
var bottomY = chartInstance.scales['y-axis-0'].bottom;
x_axis.options.gridLines.display = false;
x_axis.ticks.forEach(function (label, index) {
if (index === 0) return;
var x = x_axis.getPixelForValue(label);
ctx.save();
ctx.beginPath();
ctx.strokeStyle = x_axis.options.gridLines.color;
ctx.moveTo(x, topY);
ctx.lineTo(x, bottomY);
ctx.stroke();
ctx.restore();
});
https://www.chartjs.org/samples/latest/scales/gridlines-display.html 查看 drawticks false 选项
scales: {
yAxes: [{
gridLines: {
display: true,
drawBorder: true,
drawOnChartArea: true,
drawTicks: false,
}
ticks: {
min: 0,
max: 100,
stepSize: 10
}
}]
}