我正在我的网站中实现高级图表,但从演示的角度来看,这证明是具有挑战性的。
我的数据加载正常,但对于该系列,某些值为零。我想在不为零时显示标签,否则会变得难以阅读。
我正在尝试做这样的事情:
plotOptions: {
column: {
stacking: 'normal',
dataLabels: {
enabled: this.value == 0 ? false : true,
color: (Highcharts.theme && Highcharts.theme.dataLabelsColor) || 'white' }
}
}
但这不起作用。我试过只使用'this'而不是值,但也没有拿起它。 我无法从库中找到允许我这样做的默认选项,而无需创建自定义代码。
我已经检查了几种方法,但零是其中一个系列。所以我仍然想要为该组的非零值提供标签。
我认为当一个人说这个时,它需要整个团队的价值,而不是个人系列......
有什么建议吗?显然我做错了什么!
答案 0 :(得分:54)
您是否尝试使用formatter
的{{1}}选项?您应该能够访问其中的数据并确定标签的外观。在这里,您可以检查零,然后返回下面显示的dataLabels
。
null
此外,如果您无法确定要查看的数据部分,请在格式化程序功能中使用dataLabels: {
enabled: true,
color: colors[0],
style: {
fontWeight: 'bold'
},
formatter: function() {
if (this.y != 0) {
return this.y +'%';
} else {
return null;
}
}
}
,以便查看正在使用的对象。
查看这个有效的jsfiddle示例:http://jsfiddle.net/VLmKK/69/
希望有所帮助!
更新:返回null而不是空字符串,以避免创建Brett评论中提到的不可见标签。感谢。
您也可以{零}值not return anything。