以前我不得不在高地圖上做類似的事情。我想從一個數據點到下一個數據點的實際變化。
我所做的是我看看當前點(this.x),我發現它在系列數組中的位置。從那裏,我很容易找到前一個點的索引(index = a - 1)並進行數學運算。希望這有助於:)
編輯:
調查了stockcharts API和想通了該產品:
tooltip: {
formatter: function() {
var s = '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.x) +'</b><br>';
$.each(this.points, function(i, point) {
s += '<span style="font-weight: bold; font-size: 1.2em; color: ' + point.point.series.color + ';">' + point.point.series.name + '</span>:<span style="font-weight: bold; font-size: 1.2em;">' + point.y + '</span>' ;
s += '<span style="font-size: .8em;">';
var target = this.x;
index = 0;
for (var a = 0; a < point.series.points.length; a++) {
if (point.series.points[a].x == target)
{
index = a - 1;
}
}
var delta = 0;
var change = 0;
if (index >= 0)
{
delta = this.y - point.series.points[index].y;
change = (delta/point.series.points[index].y) * 100;
}
s += Math.round(change,2) + '%</span>';
s +='</span><br>';
});
return s;
}
},
和工作的jsfiddle:http://jsfiddle.net/nLjsc/2/
你嘗試過什麼?只是一個暗示,你必須自己去做,將關注點與工具提示格式化程序中的最後一個進行比較。 –
這不僅僅是工具提示格式化程序的問題。如果我只更改了工具提示格式器,那麼工具提示會顯示與圖表本身不同的數據,因爲圖表本身仍然會繪製第一點的百分比變化。 –
因此,它看起來像將錯誤的數據傳遞給高層圖表,對吧?我認爲您需要在後端處理圖表數據,然後將其傳遞到前端,在那裏進行渲染。 –