当鼠标位于HIighCharts中折线图的xAxis范围内时,我需要突出显示鼠标位置。 我想显示一个圆圈以突出显示鼠标位置。但我希望此功能仅适用于最后25个xAxis值。
是否可以在Highcharts中执行此操作?
一种方法是遵循代码,但它有其局限性:
var circle = chart.renderer.circle(0, 0, 5).attr({
fill: 'blue',
stroke: 'black',
'stroke-width': 1
}).add()
.toFront()
.hide();
$(chart.container).mousemove(function (event) {
circle.attr({
x: event.offsetX,
y: event.offsetY
});
if (event.offsetX > SOME_VALUE) circle.show();
});
缺点是我正在比较event.offsetX而不是event.xAxis [0] .value,即我正在比较页面中鼠标的xValue而不是图表中的xAxis值。
提前致谢
答案 0 :(得分:5)
您可以使用point.plotX
和chart.plotLeft
获取图表上的排名,请参阅:http://jsfiddle.net/PNMAG/35/
段:
function addCircle() {
var chart = this;
var circle = chart.renderer.circle(0, 0, 5).attr({
fill: 'blue',
stroke: 'black',
'stroke-width': 1
}).add()
.toFront()
.hide();
$(chart.container).mousemove(function(event) {
var normalizedEvent = chart.pointer.normalize(event);
if (normalizedEvent.chartX > chart.series[0].data[5].plotX + chart.plotLeft) {
circle.attr({
x: normalizedEvent.chartX,
y: normalizedEvent.chartY
}).show();
} else {
circle.hide();
}
});
}
var chart = new Highcharts.Chart({
chart: {
renderTo: 'container',
type: 'area',
events: {
load: addCircle
}
},
series: [{
data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4]
}, {
data: [71.5, 106.4, 129.2, 144.0, 176.0, 135.6, 148.5, 216.4, 194.1, 95.6, 54.4, 20]
}]
});