我正在尝试使用Highcharts,我的情况是x轴上的一个桶中有负值和正值。堆积值的总和未在y轴和y轴stackLabel上精确表示。
例如,在这个JSFiddle中,橘子有-30,20和40.总数显示为60;不是30。
以下是显示数据的Highcharts对象的片段:
series: [{
name: 'John',
data: [50, -30, 40, 70, 20]
}, {
name: 'Jane',
data: [20, 20, 30, -20, 10]
}, {
name: 'Joe',
data: [30, 40, 40, -20, 50]
}]
答案 0 :(得分:0)
在highcharts stackLabel中,分别从负值和正值中求和。看看你的例子,你会发现你有堆栈标签-30和60,分别计算。
答案 1 :(得分:0)
您可以使用yAxis.stackLabels.formatter属性解决此问题,如下所示:
yAxis: {
stackLabels: {
enabled: true,
align: 'center',
formatter: function() {
var sum = 0;
var series = this.axis.series;
for (var i in series) {
if (series[i].visible && series[i].options.stacking == 'normal')
sum += series[i].yData[this.x];
}
if(this.total > 0 ) {
return Highcharts.numberFormat(sum,1);
} else {
return '';
}
}
}
}
来自this answer。