javascript - highchart堆积柱每个类别的总数据

标签 javascript highcharts stacked-chart

我想获取每个类别的总数据。 point.stackTotal 仅给出事件数据的总数。

从我粘贴的代码示例中,我想知道每种水果的总消耗量。因此,即使我单击右上角图例上的乔的名字(这使得堆叠图表上的所有乔信息都处于非事件状态),我仍然可以知道约翰、简和乔在显然,将鼠标悬停在每个栏类别上,我要寻找的不是 point.stackTotal

$(function () {
    Highcharts.chart('container', {
        chart: {
            type: 'column'
        },
        title: {
            text: 'Stacked column chart'
        },
        xAxis: {
            categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas']
        },
        yAxis: {
            min: 0,
            title: {
                text: 'Total fruit consumption'
            },
            stackLabels: {
                enabled: true,
                style: {
                    fontWeight: 'bold',
                    color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
                }
            }
        },
        legend: {
            align: 'right',
            x: -30,
            verticalAlign: 'top',
            y: 25,
            floating: true,
            backgroundColor: (Highcharts.theme && Highcharts.theme.background2) || 'white',
            borderColor: '#CCC',
            borderWidth: 1,
            shadow: false
        },
        tooltip: {
            headerFormat: '<b>{point.x}</b><br/>',
            pointFormat: '{series.name}: {point.y}<br/>Total: {point.stackTotal}'
        },
        plotOptions: {
            column: {
                stacking: 'normal',
                dataLabels: {
                    enabled: true,
                    color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white'
                }
            }
        },
        series: [{
            name: 'John',
            data: [5, 3, 4, 7, 2]
        }, {
            name: 'Jane',
            data: [2, 2, 3, 2, 1]
        }, {
            name: 'Joe',
            data: [3, 4, 4, 2, 5]
        }]
    });
});

最佳答案

我认为您应该能够使用 stackLabels.formatter 函数显示您的类别的所有可见和隐藏列的总值。您可以在 Highcharts API 中获取有关 stackLabels 的更多信息: http://api.highcharts.com/highcharts/yAxis.stackLabels.formatter

  stackLabels: {
    enabled: true,
    style: {
      fontWeight: 'bold',
      color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
    },
    formatter: function() {
      var x = this.x,
        value = 0;

      series = this.axis.series;
      Highcharts.each(series, function(s) {
        value += s.userOptions.data[x];
      });
      return value;
    }
  }

在这里您可以看到非常简单的示例,如何实现与所需图表类似的效果: http://jsfiddle.net/h8f30uwo/

最好,

关于javascript - highchart堆积柱每个类别的总数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40976746/

相关文章:

javascript - Highchart 中的时间-日期和事件图表或图表

javascript - 在 Highcharts 中传递数据

r - ggplot2 堆叠条形图,将 NA 放在顶部

r - 反向堆积条形图

javascript - 松散地搜索关联数组是否存在嵌套元素

javascript - 单击菜单时,菜单字段未关闭

javascript - Drupal 7 jquery block 显示为文本

javascript - 使用 colorByPoint 时如何设置系列的图例符号颜色?

javascript - dc.js - 过滤后从堆叠条形图中删除空箱

javascript - 为什么我的提取请求被调用两次?