如果为零则隐藏堆栈标签

Hide stacklabel if zero

我有这段代码,如果值为零,它会将数字隐藏在标签内。我的问题是我还想隐藏列上显示的总和数。

这里举个例子,最后一个标签。 http://jsfiddle.net/4NxYh/72/

plotOptions: {                    
    line: {dataLabels: {enabled: true, style: {fontSize: '8px'}, style: {textShadow: false}, allowDecimals: true,  formatter: function() {return this.y + 'e'}}},
    column: {stacking: 'normal', shadow: false, dataLabels: {
                        formatter:function() {
                            if(this.y != 0) {
                                return this.y;
                            }
                        },
                        enabled: true,
                        color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white',
                        style: {
                            textShadow: '0 0 3px black',
                            fontSize: '8px'
                        }
                    }},
    series: {minPointLength: 0}

},

为了在总数为零时隐藏堆栈总数,您可以将 dataLabels 格式化程序的类似变体应用于 stackLabels 属性(另请参阅 this Stack Overflow question谈论格式化 stackLabels).

stackLabels: {
    enabled: true,
    formatter: function(){
        var val = this.total;
        if (val > 0) {
            return val;
        }
        return '';
    },
    style: {
        fontWeight: 'bold',
        color: (Highcharts.theme && Highcharts.theme.textColor) || 'gray'
    } 
},

在这种情况下,如果您的总数大于零,请显示堆栈标签。如果没有,什么都不显示。

这是您的 fiddle 的更新版本,其中包含以下更改:http://jsfiddle.net/brightmatrix/4NxYh/76/

希望对您有所帮助!