13

我正在我的网站中实现 highcharts,但从演示的角度来看,这具有挑战性。

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

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

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

但这不起作用。我试过只使用 'this' 而不是 value,但也没有拿起它。我无法从库中找到允许我执行此操作而无需创建自定义代码的默认选项。

我检查了一些方法,但零在系列之一中。所以我仍然想为该组的非零值显示标签。

我认为当一个人说 this.y 时,它需要整个团队的价值,而不是单个系列的价值......

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

4

1 回答 1

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;
        }
    }
}

此外,如果您无法确定要查看数据的哪一部分,请console.log(this)在格式化程序函数中使用,这样您就可以看到正在使用的对象。

查看这个有效的 jsfiddle 示例:http: //jsfiddle.net/VLmKK/69/

希望有帮助!

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

您也可能不会返回任何零值。

于 2012-05-26T13:02:03.613 回答