Highcharts - 防止隐藏系列时重新计算值

时间:2017-07-03 07:43:36

标签: javascript jquery highcharts

我正在使用Highcharts的堆积柱形图。我将y轴计算为百分比(min:0, max:100)。当我隐藏某个系列时,我希望其他系列的百分比保持不变(不重新计算)。但其余系列类型的动画和重新附加可以保持原样。 我只是想避免在图例中省略某些系列时百分比发生变化。

你可以在这个小提琴fiddle_sample中查看我的例子。 legendItemClick函数是我发表评论的地方。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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/