【问题标题】:highchart stacked column total data per categorieshighchart 堆积列每个类别的总数据
【发布时间】:2016-12-05 14:36:59
【问题描述】:

我想获取每个类别的总数据。 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]
        }]
    });
});

【问题讨论】:

    标签: javascript highcharts stacked-chart


    【解决方案1】:

    我认为您应该能够使用 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/

    最好的,

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多