2013-03-12 64 views
0

我基於某些用戶輸入創建Highcharts折線圖。用戶可以選擇一個或多個分組和日期範圍,併爲每個分組創建一個系列。這個工作正常,除了當他們選擇超過3組時,圖表看起來很糟糕,因爲有太多數據標籤。Highcharts有條件的數據標籤

我只想在圖表上小於4個系列的情況下有條件地啓用數據標籤。我怎樣才能做到這一點?我想這樣,但我似乎無法讓它工作。

plotOptions: { 
    line: { 
     dataLabels: { 
      enabled: function() { 
       return !!(chart.series.length > 3); 
      }, 
      color: '#000000', 
      formatter: function() { 
       return Highcharts.numberFormat(this.y, 2); 
      } 
     } 
    } 
} 
+0

你創建圖表之前,該系列產品採用格式化溫控功能? – SteveP 2013-03-12 15:28:12

+0

是的。我創建了所有系列,然後將完全格式化的系列字典傳遞給Javascript,例如}, series:{{classes_data | safe}}}; – duffn 2013-03-12 15:39:45

+0

這意味着我可以在後端執行此操作,但對於如何在Javascript中執行此操作感到好奇。 – duffn 2013-03-12 15:46:03

回答

2

當您創建系列時,請記錄您創建的數量。還有一個JavaScript變量'showDataLabels = true'。如果系列數量在創建時高於4,請設置showDataLabels = false;

var showDataLabels = true; 
// start creating the series. 

如果num系列> 4個 showDataLabels = FALSE;

一旦你準備好來生成圖表,使用方法:創建

plotOptions: { 
      line: { 
       dataLabels: { 
        enabled:showDataLabels, 
        color: '#000000', 
        formatter: function() { 
         return Highcharts.numberFormat(this.y, 2); 
        } 
       } 
      } 
     }, 
+0

謝謝,我最終在後端做了這樣的事情。 – duffn 2013-03-12 21:42:42

-1

在dataLables

formatter: function() { 
    if(this.y!=0) 
     return this.y; 
    else`enter code here` 
     return ""; 
}