Highcharts删除零值标签

问题描述:

我在我的网站中实施了highcharts,但从演示的角度来看,这证明具有挑战性。Highcharts删除零值标签

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

我试图做这样的事情:

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

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

我已经检查了一些方法,但零是在系列之一。所以我仍然想为该组提供非零值的标签。

我想,当一个人说this.y它需要整个集团的价值,而不是个别系列...

有什么建议?很明显,我做错了什么!

您是否尝试过使用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注释中提到的不可见标签。谢谢。

您也可以在零值上使用not return anything

+0

感谢gizmotivation,我编辑了这个问题来澄清。 – Lievcin

+0

@Lievcin:格式化程序选项可以根据需要单独处理每个值。我在高图样本文件中测试了它。它只从数据点中删除了0的标签。您是否可以尝试一下? – christurnerio

+0

刚刚为你添加了一个jsfiddle例子。 http://jsfiddle.net/gizmovation/VLmKK/ – christurnerio