2013-07-03 467 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

你有任何現場演示? –