2016-11-07 21 views
3

我有一系列行,我在其上顯示自定義數據標籤,僅用於系列中的特定值。在窗口大小調整時,數據標籤正在從圖表中消失。有沒有解決這個問題的方法。 在此先感謝。Highcharts - 行系列中的定製數據標籤正在窗口大小上消失

我的代碼:

var options = { 
      chart : { 
       renderTo : 'container', 
       type : 'line', 
      }, 

     xAxis : { 
      spacingTop: 50, 
      spacingBottom: 25, 
      categories : [] 
     }, 

     yAxis : [ { 
      min: 0, 
      minRange: 0.1 
     } ], 
     plotOptions: { 
      line:{ 
       dataLabels: { 
        enabled:true, 
        defer:false, 
        formatter: function() { 
         count++; 
         if(this.y) 
          if(batch_info[count]!=0) 
           return batch_info[count]; 
        } 
       } 
      } 
     }, 
     series : [] 
    }; 

`

窗口調整大小前:

enter image description here

enter image description here

最大化窗口後,

+2

你可以檢查元素這些標籤,並檢查他們的行爲發生了什麼?如果創建問題 –

回答

4

格式化程序調用回調函數在每個重繪/縮放,所以最有可能的情況是,你不復位count變量和作爲結果它訪問不存在的值,例如batch_info[101]batch_info.length === 100

可以使用模運算符來避免它:

formatter: function() { 
        count++; 
        return batch_info[count % batch_info.length]; 
       } 

例如:http://jsfiddle.net/ck8zhLmj/1/

但我建議重構代碼,並下探count變量的使用。相反,您可以在系列的數據或點對象中包含有關數據標籤的信息。

+0

非常感謝。有效。在調整窗口大小時,「x軸中的標籤」也消失了(如上圖所示)。你能否建議一種方法來解決這個問題呢?提前致謝。 – Disera

+1

因爲沒有足夠的空間而隱藏它們。您可以嘗試使用軸標籤設置,如staggerLines和旋轉。 http://api.highcharts.com/highcharts/xAxis.labels http://jsfiddle.net/L7psz0b3/ – morganfree

0

解決方案可能是在重新調整大小後重新加載highcharts函數。

$(window).resize(function(){ 
    drawVisualization(); 
}); 
+0

drawVisualization()的任何Fiddle/Codepen將會很好,即使在調整大小後仍保留標籤,但不會根據窗口大小最大化圖表。圖表尺寸與之前的窗口尺寸保持一致。請幫忙。 – Disera

相關問題