Отключает Crosshair для одной серии из двух

Я использую диаграмму с двумя сериями, как вы можете видеть на http://jsfiddle.net/Charissima/zo5j94qz/4/

Можно ли отключить перекрестье для второй серии? Проблема в том, что когда указатель муаса находится рядом с черной серией s2, нет перекрестия для синей серии s1, и мне не нужны/нужны перекрестия для черной серии, но для синего.

var myData = [];
 for (var i = 2; i < 10; i++) {
 myData.push([i, i + Math.random() * 3]);
 }
 var myDataLine = [];
 myDataLine.push([0,6]);
 myDataLine.push([23,6]);

 chart = $('#container').highcharts('StockChart', {
 chart : {
 zoomType: 'x',
 },
 series: [{
 name: 's1',
 data: myData,
 type: 'line'
 },{
 name: 's2',
 data: myDataLine,
 type: 'line'
 }]
 });
2 ответа

По умолчанию он не встроен, но вы можете подготовить свою собственную функцию перекрестия, как в примере:

mouseOver: function () {
 var chart = this.series.chart,
 r = chart.renderer,
 left = chart.plotLeft,
 top = chart.plotTop,
 width = chart.plotWidth,
 height = chart.plotHeight,
 x = this.plotX,
 y = this.plotY;

 if (this.series.options.enabledCrosshairs) {
 crosshair = r.path(['M', left, top + y, 'L', left + width, top + y, 'M', left + x, top, 'L', left + x, top + height])
 .attr({
 'stroke-width': 1,
 stroke: 'red'
 })
 .add();
 }
 },
 mouseOut: function () {
 if (crosshair.d !== UNDEFINED) crosshair.destroy();
 }

http://jsfiddle.net/u4ha3cxw/7/


Да, это очень возможно. Используйте 2 оси x, один с включенным перекрестием, а другой с перекрестием отключен. Затем укажите, какую серию вы хотели бы использовать, какую ось:

Highcharts.chart('container', {
 xAxis: [{
 crosshair: {
 enabled: true,
 width: 5
 }
 }, {
 crosshair: false,
 visible: false
 }],

 series: [{
 name: 'Series w/ Crosshair',
 xAxis: 0, // You could omit this, highcharts uses the first axis in array by default
 data: [99.9, 81.5, 76.4, 129.2, 144.0]
 },
 {
 name: 'Series w/o Crosshair',
 xAxis: 1,
 data: [42.1, 47.5, 150.4, 42.2, 64.0]
 }
 ]
})

licensed under cc by-sa 3.0 with attribution.