2017-07-03 48 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/