Highcharts删除零值标签

Lie*_*cin 13 jquery highcharts

我正在我的网站中实现高级图表,但从演示的角度来看,这证明是具有挑战性的.

我的数据加载正常,但对于该系列,某些值为零.我想在不为零时显示标签,否则会变得难以阅读.

我正在尝试做这样的事情:

plotOptions: {
   column: {
    stacking: 'normal',
    dataLabels: {
           enabled: this.value == 0 ? false : true,
       color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white' }
}
}
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我试过只使用'this'而不是值,但也没有拿起它.我无法从库中找到一个默认选项,允许我在不必创建自定义代码的情况下执行此操作.

我已经检查了几种方法,但零是其中一个系列.所以我仍然想要为该组的非零值显示标签.

我想当有人这样说时,它需要整个团队的价值,而不是个别系列......

有什么建议?显然我做错了!

小智 55

您是否尝试过使用该formatter选项dataLabels?您应该能够访问其中的数据并确定标签的外观.在这里你可以检查零,只返回null如下所示.

dataLabels: {
    enabled: true,
    color: colors[0],
    style: {
        fontWeight: 'bold'
    },
    formatter: function() {
        if (this.y != 0) {
          return this.y +'%';
        } else {
          return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

此外,如果您在确定要查看的数据部分时遇到问题,请console.log(this)在formatter函数中使用,以便您可以看到正在使用的对象.

看看这个工作的jsfiddle示例:http://jsfiddle.net/VLmKK/69/

希望有所帮助!

更新:返回null而不是空字符串,以避免创建Brett评论中提到的不可见标签.谢谢.

您也可能不会返回零值的任何内容.

  • 对于您不想显示的标签,必须返回"null",而不是空字符串,否则会绘制一个看似不可见的标签.如果应用了边框,背景和角半径,则此变为可见.[以这个小提琴为例](http://jsfiddle.net/Y4r2w/3/),注意零值所在的圆形阴影.[现在看到返回null时](http://jsfiddle.net/Y4r2w/4/). (3认同)