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。
感谢gizmotivation,我编辑了这个问题来澄清。 – Lievcin
@Lievcin:格式化程序选项可以根据需要单独处理每个值。我在高图样本文件中测试了它。它只从数据点中删除了0的标签。您是否可以尝试一下? – christurnerio
刚刚为你添加了一个jsfiddle例子。 http://jsfiddle.net/gizmovation/VLmKK/ – christurnerio