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

标签 javascript jquery highcharts

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

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

任何帮助将不胜感激。

最佳答案

正如我在评论中提到的,可以使用 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/

关于javascript - Highcharts - 防止在隐藏系列时重新计算值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44880201/

相关文章:

javascript - 仅调用 deleteLater() 是否足以避免使用 Embind 的 Javascript 中的内存泄漏?

javascript - 点击离开时关闭 Google 饼图工具提示

javascript - 如何在页面加载完成之前显示页面加载 div?

javascript - Highcharts 服务器端图像生成,如何在回调参数中设置图例 labelFormatter

node.js - Highcharts 导出服务甘特图不起作用

java - 使用 Selenium 选择关系型 highchart SVG 图像

javascript - 将 JWplayer 嵌入代码从数据库集合加载到meteor.js 中的页面模板中

javascript - 如何确保在快速选择单选按钮时仅调用一个事件处理程序?

jquery - Div Slide 在 Chrome/Safari 中无法正常工作

javascript - jquery 点击和 cookies