标题几乎说明了一切。这是一张图片,上面有我想要的解释。
这是我到目前为止使用的Highcharts配置的一部分,但它不正确地计算总和,因为stackTotal属性包含整个Total,甚至是隐藏的项目。
plotOptions: {
series: {
events: {
legendItemClick: function(event) {
// if visible, sum == 0, because this series will be hidden
// if hidden, sum == total, because this series will be shown
var sum = (this.visible ? this.data[0].stackTotal : 0),
index = this.index;
$.each(this.chart.series, function(){
if (this.visible && this.index != index) {
sum += this.data[0].stackTotal;
}
});
$('.chart_total', '#doc_chart').text(sum);
}
}
}
},
如何让它显示图表的正确总和?
答案 0 :(得分:6)
查看jsfiddle上的此示例是否符合您的要求。
单击legendItem
时,处理程序以chartTotal = 0
开头,然后循环遍历图表中的每个系列。
如果循环中的当前序列不是点击的那个(使用series.index
检查),那么它会计算seriesTotal
并将其添加到chartTotal
} 只有在可见时才会显示。
否则,如果当前系列是被点击的,那么只有seriesTotal
将其添加到chartTotal
才会显示>强>。
最后,它使用chartTotal
的值更新显示。