当系列很大时隐藏HighCharts StackLabels

时间:2017-05-22 13:04:52

标签: javascript highcharts

关于SO的堆叠问题有几个问题,但我没有看到任何与我的问题相关的问题。

现在,我有一个非常标准的柱形图(使用HighCharts构建)。它有基本的堆栈标签,一切正常。但是,当用户展开数据的视图集(实际上是扩展系列的大小)时,StackLabels(各个列上方的标签)重叠并且看起来很混乱。

所以,当系列说> = 20时,我想隐藏所有列的堆栈标签。

现在,我的堆栈标签显示如下:

    yAxis: {
        min: 0,
        title: {
            text: 'My Title'
        },
        stackLabels: {
            enabled: true,
            formatter: function () {
                //if more than 20 points, hide them
                if (this.series.length >= 20) { 
                        return ''
                 }
                //else show them 
                return this.total
        }
    },

但这不起作用,因为'this'的上下文不正确,因此this.series。[anything]返回undefined。似乎“这个”指的是这一点。但我需要引用包含该点的图表。

这可能吗?

1 个答案:

答案 0 :(得分:1)

格式化程序中的不是指图表对象,也不是轴。此外,该系列的数据尚不可用。但是,您可以从选项中获取数据的长度。

      formatter: function() {
    //if more than 20 points, hide them
    if (this.axis.series[0].options.data.length >= 20) {
      return false
    }
    //else show them 
    return this.total
  }

示例:http://jsfiddle.net/6mmLu3ct/