2012-05-25 99 views
4

我有一個日常圖,橫跨00:00到23:59。但是對於實時數據,假設現在是上午9點,默認情況下它會從00:00 - 09:00延長圖表,這對我來說並不好看。我想要的是同一天23:59時的X軸最大值,因此它會在09:00 - 23:59顯示爲空白。我試過$graph["xAxis"]["max"] = (time()+86400)*1000但無濟於事。任何建議?謝謝!x軸上的dateTime的最大高度間隔?

回答

7

Highcharts將只顯示指定的最後一個數據點。如果您想強制顯示09:00 - 23:59,則必須將所有要顯示的時間點的數據點傳遞給,但傳遞值爲空。這裏是一個例子:jsfiddle example

一旦數據點超過小時範圍,它將自動格式化數據時間標籤。您可能需要通過dateTimeLabelFormats來控制數據標籤的格式。

11

(雖然這是一個老問題,但我使用谷歌搜索來到這裏,它在搜索結果的頂部仍然是搜索結果的頂部,因此我認爲這個評論仍然有用。 )

對於較早版本的高圖,接受的答案可能是正確的,但在當前版本(v3.0.7)中,還可以將xAxis.max屬性設置爲您希望圖形結束的日期時間。這應該是這樣的,而且是IMO的方式清潔的解決方案:

$(function() { 
    var chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container' 
     }, 
     xAxis: { 
      type: 'datetime', 
      max: Date.UTC(2010, 0, 2), 
      dateTimeLabelFormats: { 
       day: '%e of %b' 
      } 
     }, 

     series: [{ 
      data: [29.9, 71.5, 106.4, 129.2, 144.0, 176.0, 135.6], 
      pointStart: Date.UTC(2010, 0, 1), 
      pointInterval: 1 * 3600 * 1000 // one hour 
     }] 
    }); 
}); 

this jsfiddle example

1

因爲默認情況下在前面的回答說,

Highcharts將只顯示指定的最後一個數據點。

然而,正如你可以看到default jsfiddle for min max setting,你必須同時指定除了MIN和MAX是endOnTick和startOnTick都是假的。更重要的是,當處理日期時間類型的缺失數據時,您需要將序號設置爲假,以便爲空數據留出空間。

這意味着你的X軸應如下:

xAxis : { 
    allowDecimals : false, 
    endOnTick : false, 
    max : /** Date in timestamp for the end the day */, 
    min : /** Date in timestamp for the beginning the day */, 
    ordinal : false, 
    startOnTick : false, 
    type : 'datetime' 
},