如何在任何给定时间以高图显示所有可见系列数据的总和?例如给出以下图表:
https://jsfiddle.net/8xmw2nj6/2/
它显示了一个带有向下钻取的简单堆积柱形图。我想要的是默认情况下应显示“ 14879”值。作为可见的系列/向下钻取更改,它应更新此值。例如,该值可以显示在图形标题中。
关于如何实现此目标的任何想法?
为何如此重要的示例: 柱状图显示了12个月(给定年份)总销售额的细分。我们可以看到每月的销售额,但是也要知道总量。仅突出显示特定客户的系列-同样,我们也想知道系列的总价值,而不仅仅是每月的细分。
我知道我们可以使用setTitle
设置图表标题:
chart.setTitle(total);
但是我不知道在何处包含此功能以及如何计算仅可见序列的总数。
答案 0 :(得分:2)
您可以通过使用setTitle
函数和render
事件来实现您的目标,如下所示:
chart: {
events: {
render: function() {
let series = this.series
let sum = 0
for(let i = 0; i < series.length; i++) {
if(series[i].visible){
for(let j = 0; j < series[i].data.length; j++) {
sum += series[i].data[j].y
}
}
}
this.setTitle({text: "Production Orders, sum: " + sum}, false, false)
}
}
},
这将始终计算所有可见系列的总和。
要格式化标题中的数字,可以使用Highcharts.numberFormat(number, decimals [, decimalPoint] [, thousandsSep])
,它以字符串形式而不是整数sum
的形式返回格式化后的数字。
工作示例: https://jsfiddle.net/ewolden/y03qjbhk/1/
渲染事件上的API: https://api.highcharts.com/highcharts/chart.events.render