如何动态显示所有可见系列数据的总和

时间:2018-11-20 10:37:17

标签: highcharts

如何在任何给定时间以高图显示所有可见系列数据的总和?例如给出以下图表:

https://jsfiddle.net/8xmw2nj6/2/

它显示了一个带有向下钻取的简单堆积柱形图。我想要的是默认情况下应显示“ 14879”值。作为可见的系列/向下钻取更改,它应更新此值。例如,该值可以显示在图形标题中。

关于如何实现此目标的任何想法?

为何如此重要的示例: 柱状图显示了12个月(给定年份)总销售额的细分。我们可以看到每月的销售额,但是也要知道总量。仅突出显示特定客户的系列-同样,我们也想知道系列的总价值,而不仅仅是每月的细分。

我知道我们可以使用setTitle设置图表标题:

chart.setTitle(total);

但是我不知道在何处包含此功能以及如何计算仅可见序列的总数。

1 个答案:

答案 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