2017-07-03 47 views
0

我正在使用來自Highcharts的堆疊柱狀圖。我以百分比(min:0, max:100)來計算我的y軸。當我隱藏某個系列時,我希望其他系列的百分比保持不變(不重新計算)。但動畫和其他系列類型的重新附加可以保持原樣。 我只是想避免在圖例中省略一些系列時百分比發生變化。Highcharts - 防止在系列隱藏時重新計算值

你可以檢查我的例子在這個小提琴fiddle_sample。 legendItemClick函數是我發表評論的地方。

任何幫助將非常感激。

+1

您應該能夠遍歷您的系列和手工計算你的總堆棧。兩個簡單的例子:http://jsfiddle.net/x8eev53o/3/ http://jsfiddle.net/x8eev53o/5/ –

+0

這正是我想要的。謝謝@Grzegorz。欣賞它。爲什麼不添加它作爲答案,以便我可以接受它。這對其他人會有所幫助。 – khalidcawl

回答

1

正如我在我的評論都提到,可以使用dataLabels.formatter功能手動來計算你的觀點: http://api.highcharts.com/highcharts/plotOptions.series.dataLabels.formatter

dataLabels: { 
    enabled: true, 
    formatter: function() { 
     var total = 0; 
     var x = this.point.x; 
     Highcharts.each(this.series.chart.userOptions.series, function(s) { 
     Highcharts.each(s.data, function(p, pointX) { 
      if (pointX === x) { 
      total += p; 
      } 
     }) 
     }); 
     if (this.percentage == 0 || !this.percentage) 
     return '' 
     else 
     return Math.round(this.y * 100/total) + '%'; 
    }, 
    color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white' 
    } 

我準備了兩個例子應該如何有可能使您的圖表。您可以在下面的鏈接,這些例子:

http://jsfiddle.net/x8eev53o/5/

http://jsfiddle.net/x8eev53o/3/