2013-07-12 107 views
1

我使用Highstock創建折線圖。但是,當日期範圍小於特定天數時,我發現問題,出現重複的x個標籤。我設置格式化程序只顯示幾天。這裏是例子:http://jsfiddle.net/ry4DQ/如何避免重複的X時間軸標籤

labels: { 
    formatter: function() { 
      return Highcharts.dateFormat('%m/%d', this.value); 
    } 
} 

當我改變的開始日期是例如2011-05-07,你會看到兩個標籤上的x軸的每一天。

duplicate days on the X axis

有什麼辦法來避免這個問題?

我試過setExtremes事件,將tickInterval設置爲1天,當日期範圍小於某個值時,它就起作用。但是,當圖表調整得較小時,標籤文本會重疊。

任何幫助或信息,非常感謝!

回答

2

標籤被複制,因爲您將標籤定義爲每個極值的%m /%d。即:如果您有:18:00/22:00(2011-05-07的日期範圍),則這些值由格式化程序(%m%d)重疊。所以結果是重複的。

tickInterval/minrange應定義爲以毫秒爲單位的時間,所以有一天是24 * 3600 * 1000

0

如果從xAsis.labels刪除formatter,這個問題會自行消失。你可能不喜歡日期格式。這裏的the fiddle和截圖:

enter image description here

0

通過@塞巴斯蒂安 - bochan該解決方案使我在正確的道路:你仍然可以使用格式化(違背@丹dascalescu的回答),只要確定也將間隔設置爲正確的毫秒量!

if hour_axis == true 
    date = 'h:MMTT' 
    interval = 3600 * 1000 
else 
    date = 'm/d/yy' 
    interval = 24 * 3600 * 1000 

xAxis = 
    xAxis: 
    tickInterval: interval 
    tickPositions: 0 
    type: 'datetime' 
    labels: 
    formatter: -> 
     dateFormat(@value, date)