公认答案的一个缺点是它不适用于分组堆栈,因为您将获得所有堆栈系列的总数,而不仅仅是每个组中的系列。
这是一个适用于分组堆栈的函数(不是很漂亮):
function() {
var stackItem = this;
var allStacks = stackItem.axis.stacks;
for (var key in allStacks) {
if (allStacks[key][stackItem.x] == stackItem) {
var oppositeKey = stackItem.isNegative ? key.slice(1) : '-' + key;
var oppositeItem = allStacks[oppositeKey] && allStacks[oppositeKey][stackItem.x];
if (oppositeItem === undefined) {
if (stackItem.total != 0.0) {
return Highcharts.numberFormat(stackItem.total, 0);
}
} else {
var sum = stackItem.total + oppositeItem.total;
if (stackItem.isNegative ^ sum > 0) {
return Highcharts.numberFormat(sum, 0);
}
}
}
}
};
注意我是this
从格式化程序传递过来的。
这是一个工作示例。