gpt4 book ai didi

javascript - 如何在 chartJS 中定位 yAxes 标签

转载 作者:行者123 更新时间:2023-11-30 11:38:01 26 4
gpt4 key购买 nike

我想在 chartJS 中将 y 轴刻度标签对齐 的刻度。

这是我到目前为止所得到的:

what I've got so far

我想要刻度标签 0M20M40M 位于刻度标签上方。像这样:

I want this

这是我的图表配置:

new Chart(ctx, {
type: 'bar',
data,
options: {
...
scales: {
xAxes: [{ ... }],
yAxes: [{
stacked: true,
position: 'right',
gridLines: {
drawBorder: false
},
ticks: {
maxTicksLimit: 3
}
}]
}
}
})

我无法在图表选项中找到任何选项来执行此类操作。请帮忙

最佳答案

你可以通过在 options 配置中添加一个 animation 来做到这一点:

options: {
animation: {
duration: 1,
onComplete: function() {
var controller = this.chart.controller;
var chart = controller.chart;
var yAxis = controller.scales['y-axis-0'];

yAxis.ticks.forEach(function(value, index) {
var xOffset = chart.width - 40;
var yOffset = ((chart.height - 60) / 2 * index) + 15;
ctx.fillText(value + 'M', xOffset, yOffset);
});
}
}
}

JSFiddle 演示:https://jsfiddle.net/m5tnkr4n/1/

您可能需要调整 xOffsetyOffset 中的硬编码数字。这些数字将取决于图表的高度和宽度,以及您在 Canvas 区域中显示的功能。例如,如果您删除 xAxes 刻度标签,您可能需要减少 -60,因为这会使图表稍微变短。 /2 有效,因为您将 maxTicksLimit 设置为 3。

关于javascript - 如何在 chartJS 中定位 yAxes 标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43677197/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com