Javascript 如何在chartJS中定位Yax标签
我想在chartJS中将y轴记号标签与记号上方对齐 以下是到目前为止我得到的信息: 我想要勾号标签Javascript 如何在chartJS中定位Yax标签,javascript,charts,chart.js,Javascript,Charts,Chart.js,我想在chartJS中将y轴记号标签与记号上方对齐 以下是到目前为止我得到的信息: 我想要勾号标签0M,20M和40M在勾号标签上方。大概是这样的: 这是我的图表配置: new Chart(ctx, { type: 'bar', data, options: { ... scales: { xAxes: [{ ... }], yAxes: [{ stacked: true,
0M
,20M
和40M
在勾号标签上方。大概是这样的:
这是我的图表配置:
new Chart(ctx, {
type: 'bar',
data,
options: {
...
scales: {
xAxes: [{ ... }],
yAxes: [{
stacked: true,
position: 'right',
gridLines: {
drawBorder: false
},
ticks: {
maxTicksLimit: 3
}
}]
}
}
})
我在图表选项中找不到任何选项来做这样的事情。请帮助您可以通过向
选项
配置中添加动画
来完成此操作:
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);
});
}
}
}
JSFIDLE演示:
您可能需要调整
xOffset
和yOffset
中的硬编码数字。这些数字将取决于图表的高度和宽度,以及在画布区域中显示的功能。例如,如果删除xAxes
勾号标签,则需要减少-60
,因为这将使图表略短<代码>/2有效,因为您将maxTicksLimit
设置为3 您可以通过向选项
配置中添加动画
来完成此操作:
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);
});
}
}
}
JSFIDLE演示:
您可能需要调整
xOffset
和yOffset
中的硬编码数字。这些数字将取决于图表的高度和宽度,以及在画布区域中显示的功能。例如,如果删除xAxes
勾号标签,则需要减少-60
,因为这将使图表略短<代码>/2有效,因为您将maxTicksLimit
设置为3 尝试创建新的比例类型并覆盖getPixelForTick
method@Rhea对不起,我是新来的。你能发布一些代码吗?你能添加代码吗?或者用当前用于创建图表的代码添加一个JSFIDLE吗?@TotZam好的,我已经为图表的配置添加了相关代码尝试创建一个新的比例类型并覆盖getPixelForTick
method@Rhea对不起,我是新来的。你能发布一些代码吗?你能添加代码吗?或者用你当前用来创建图表的代码添加一个JSFiddle吗?@TotZam好的,我已经为我的图表的配置添加了相关的代码谢谢你的代码和解释!这正是我想要的:)当鼠标悬停在图表(显示工具提示)上时,雅克斯就隐藏了!谢谢你的代码和解释!这正是我想要的:)当鼠标悬停在图表(显示工具提示)上时,雅克斯就隐藏了!