2013-07-03 254 views
3

请看看这个:http://jsfiddle.net/HA5xE/Highcharts堆积条形图隐藏数据标签不重叠

所以,我已经堆积柱形图,我想隐藏数据标签时,他们没有在该地区适合。对于类别8中的示例,根本不具有数据标签“4”。

我看到:http://api.highcharts.com/highcharts#plotOptions.bar.dataLabels.crop,据我所知应该自动完成,但由于某种原因不起作用。

我试图计算系列是以像素为单位的宽度(或高度)来控制显示/隐藏格式化程序功能,但我无法获得栏系列宽度。

formatter: function() { 
if(this.percentage.toFixed(0)>0) 
    return this.percentage.toFixed(0); 
else 
    return ''; 
} 

感谢您的帮助提前。

FIXED:

formatter: function() { 
if(this.point.yBottom - this.point.plotY>13) 
    return this.percentage.toFixed(0); 
else 
    return ''; 
} 
+0

作物的选择是不是你在想什么... – c0deNinja

回答

8

您可以在每个系列的每一点迭代,然后检查栏的宽度和破坏标签如果widht比ie.15px小。

http://jsfiddle.net/HA5xE/1/

$.each(chart.series,function(i,serie){ 
     $.each(serie.data,function(j,data){ 
      if(data.yBottom - data.plotY < 15) 
       data.dataLabel.destroy(); 
     }); 
    }); 
+0

塞巴斯蒂安感谢!您的解决方案正常工作 – Irakli

+0

伟大的解决方案塞巴斯蒂安;然而,我遇到了堆叠柱的小问题。绑定到'redraw'事件时;在切换系列的可见性后,我收到错误:'不能读取未定义的属性'namespaceURI'。我发现一个小的解决方法是'hide()'而不是'destroy()'。 – Richard

+0

你有任何现场演示? –