悬停后更新图表轴标签 - chart.js
Update chart axis labels after hover - chart.js
我正在使用 chart.js 版本 3.7.1。我想在悬停后替换 y 轴标签。悬停事件工作正常,它可以很好地识别 y 轴,但标签不会替换。我尝试使用图表 API 中的 update()
方法,但它没有帮助。
我还准备了一些快速游乐场,我在其中放置了一个有此问题的自定义图表。
https://stackblitz.com/edit/angular-ivy-x3sncg
您可以将 afterEvent
插件与 ticks.callback
函数结合使用,如下所示:
options: {
scales: {
y: {
beginAtZero: true,
ticks: {
callback: value => value + (this.isHoveringYAxe ? '$' : '')
}
}
}
},
plugins: [{
id: 'customHover',
afterEvent: (chart, args) => {
const event = args.event;
if (event.type == 'mousemove') {
if (event.x < chart.scales.y.width && !this.isHoveringYAxe) {
this.isHoveringYAxe = true;
chart.update();
} else if (event.x >= chart.scales.y.width && this.isHoveringYAxe) {
this.isHoveringYAxe = false;
chart.update();
}
}
}
]
请查看您修改后的 StackBlitz,看看它是如何工作的。
我正在使用 chart.js 版本 3.7.1。我想在悬停后替换 y 轴标签。悬停事件工作正常,它可以很好地识别 y 轴,但标签不会替换。我尝试使用图表 API 中的 update()
方法,但它没有帮助。
我还准备了一些快速游乐场,我在其中放置了一个有此问题的自定义图表。 https://stackblitz.com/edit/angular-ivy-x3sncg
您可以将 afterEvent
插件与 ticks.callback
函数结合使用,如下所示:
options: {
scales: {
y: {
beginAtZero: true,
ticks: {
callback: value => value + (this.isHoveringYAxe ? '$' : '')
}
}
}
},
plugins: [{
id: 'customHover',
afterEvent: (chart, args) => {
const event = args.event;
if (event.type == 'mousemove') {
if (event.x < chart.scales.y.width && !this.isHoveringYAxe) {
this.isHoveringYAxe = true;
chart.update();
} else if (event.x >= chart.scales.y.width && this.isHoveringYAxe) {
this.isHoveringYAxe = false;
chart.update();
}
}
}
]
请查看您修改后的 StackBlitz,看看它是如何工作的。