2016-12-05 8 views
1

カテゴリごとの合計データを取得したい。 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] 
     }] 
    }); 
}); 

答えて

0

stackLabels.formatter関数を使用して、カテゴリのすべての表示および非表示の列の合計値を表示することができるはずです。あなたはあなたが必要なチャートに似た何かを達成することができますどのように非常に簡単な例を見ることができます。ここ 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; 
    } 
    } 

:あなたはHighcharts APIでstackLabelsに関する詳細な情報を得ることができます http://jsfiddle.net/h8f30uwo/

ベスト、

関連する問題