我正在寻找一种在将单个系列标签悬停在任何图表中时更改其值(或格式)的方法。
目前我只能访问整个轴,我找不到单个标签的getter方法来附加一个监听器。
xAxis.labels().listen('mouseOver', function(e) {
console.log(this, e.target);
});
据我所知,这个 jsfiddle (参见控制台日志),以及 event.target 引用整个轴而不是标签:
我正在寻找一种在将单个系列标签悬停在任何图表中时更改其值(或格式)的方法。
目前我只能访问整个轴,我找不到单个标签的getter方法来附加一个监听器。
xAxis.labels().listen('mouseOver', function(e) {
console.log(this, e.target);
});
据我所知,这个 jsfiddle (参见控制台日志),以及 event.target 引用整个轴而不是标签:
确实,缓存和 format() 函数有一个小错误,我们的开发团队已修复,所以请检查工作示例:
var labelIndex = e.labelIndex;
var label = this.getLabel(labelIndex);
var value = xAxis.scale().ticks().get()[labelIndex];
label.format(value * 2);
https://jsfiddle.net/pbhd4b7L/13/ - 它还展示了如何使用刻度值:
目前它从分支中获取 js,但此修复将包含在即将发布的版本中 - 7.14.0 版本(ETA:2017 年 5 月)
我们的 API 在这里有点复杂,但我们正在努力改进它。这是你要找的吗?
var labelIndex = e.labelIndex;
var label = this.getLabel(labelIndex);
label.fontColor('red');
label.draw();
此问题已在 7.14.0 版本中修复,请使用以下代码:
xAxis.labels().listen('mouseOver', function(e) {
var labelIndex = e.labelIndex;
var label = this.getLabel(labelIndex);
var value = xAxis.scale().ticks().get()[labelIndex];
label.format(value * 2);
label.fontColor('red');
label.draw();
});