2016-06-21 56 views
0

我有一個帶有多個y軸的圖表。我已經使用頂部選項將一個圖表移至底部。當我將鼠標懸停在圖形底部時,不會出現共享工具提示。當我懸停在條形圖正上方的空間時。條和100之間的空間(Y軸),工具提示不會出現。將鼠標懸停在工具欄右側或左側的空白處,工具提示不會出現。Highcharts共享工具提示不出現在定位多軸圖表

我不想讓圖形處於默認位置。當我將兩個圖分開時,它看起來更乾淨。當圖表向下移動時,我可以使共享工具提示工作嗎?

我的代碼: yAxis: [{ top: 148 }, { top: 0 }], tooltip: { shared: true, crosshairs: { color: 'rgba(27,161,218,0.5)', dashStyle: 'solid', zIndex: -1 } },

這裏是小提琴:multi-axes graph with positioning

任何輸入理解。 謝謝

+0

對我來說,你的jsfiddle工作得很好,兩個系列都印在了提示。你能否更新代碼來介紹這個問題? –

+0

@SebastianBochan,懸停在條形圖正上方的空間中。條和100之間的空間(Y軸),工具提示不會出現。將鼠標懸停在工具欄右側或左側的空白處,工具提示不會出現。對不起,不夠清楚。 –

+0

一堆東西正在被你的y軸設置一個* top *值而不是一個高度。這是一個非常混亂的設置,我很困惑你試圖用它來完成什麼。另外,你沒有任何連接到第二y軸的系列。如果您可以澄清您實際上希望此圖表執行的操作,我們可以找到正確設置它的方法,並清除過程中的工具提示問題。例如,如果你只是堅持一個單一的Y軸,一切似乎工作正常:http://jsfiddle.net/jlbriggs/mL36s92d/1/ – jlbriggs

回答

-1

看看使用同步圖表。

http://www.highcharts.com/demo/synchronized-charts

的的jsfiddle被更新爲使用同步圖表。 JSFiddle

$(function() { 
$('#container').bind('mousemove touchmove touchstart', function(e) { 
var chart, 
    point, 
    i, 
    event; 

for (i = 0; i < Highcharts.charts.length; i = i + 1) { 
    chart = Highcharts.charts[i]; 
    event = chart.pointer.normalize(e.originalEvent); // Find coordinates within the chart 
    point = chart.series[0].searchPoint(event, true); // Get the hovered point 

    if (point) { 
    point.highlight(e); 
    } 
} 
}); 
/** 
* Override the reset function, we don't need to hide the tooltips and crosshairs. 
*/ 
Highcharts.Pointer.prototype.reset = function() { 
return undefined; 
}; 

/** 
* Highlight a point by showing tooltip, setting hover state and draw crosshair 
*/ 
Highcharts.Point.prototype.highlight = function(event) { 
this.onMouseOver(); // Show the hover marker 
this.series.chart.tooltip.refresh(this); // Show the tooltip 
this.series.chart.xAxis[0].drawCrosshair(event, this); // Show the crosshair 
}; 

/** 
* Synchronize zooming through the setExtremes event handler. 
*/ 
function syncExtremes(e) { 
var thisChart = this.chart; 

if (e.trigger !== 'syncExtremes') { // Prevent feedback loop 
    Highcharts.each(Highcharts.charts, function(chart) { 
    if (chart !== thisChart) { 
     if (chart.xAxis[0].setExtremes) { // It is null while updating 
     chart.xAxis[0].setExtremes(e.min, e.max, undefined, false, { 
      trigger: 'syncExtremes' 
     }); 
     } 
    } 
    }); 
} 
} 

var dataset = [{ 
"name": "Series 1", 
"type": "column", 
"data": [29.9, 71.5, 106.4] 
}, { 
"name": "Series 2", 
"type": "line", 
"data": [216.4, 194.1, 95.6] 
}]; 

for (var i = 0; i < dataset.length; i++) { 
var dataitem = dataset[i]; 
$("<div class=\"chart\">") 
    .appendTo('#container').highcharts({ 
    title: { 
     text: dataitem.name 
    }, 
    xAxis: { 
     categories: ['Jan', 'Feb', 'Mar'] 
    }, 
    tooltip: { 
     crosshairs: { 
     color: 'rgba(27,161,218,0.5)', 
     dashStyle: 'solid', 
     zIndex: -1 
     } 
    }, 
    series: [{ 
     data: dataitem.data, 
     name: dataitem.name, 
     type: dataitem.type 
    }] 
    }); 
}; 
}); 
+0

謝謝@Stringfellow,我現在可以得到這兩個圖形的十字線,但對我而言,這兩個圖表都在不同的數據點上。要顯示工具提示,我無法訪問第二個圖形的數​​據點。 –

相關問題