2016-09-03 52 views
0

我正在嘗試繪製c3.js庫在間隔時間內具有x軸的圖形。

我們正在根據日期範圍選擇器制定這些時間間隔因此,如果我們選擇日期2016-03-13 00:00至2016-03-13 04:00,那麼我們將在開始日期之前添加15分鐘,直到它仍然小於或等於結束日期當存在DST時間間隔的數據時,x軸不會在c3.js中正確繪圖

我正在採取的數據點如下:

[「x」,「2016-03-13 00:00」,「2016-03-13 00:15 「,」2016-03-13 00:30「,」2016-03-13 00:45「,」2016-03-13 01:00「,」2016-03-13 01:15「,」2016-03 -13 01:30「,」2016-03-13 01:45「,」2016-03-13 02:00「,」2016-03-13 02:15「,」2016-03-13 02:30「 ,「2016-03-13 02:45」,「2016-03-13 03:00」,「2016-03-13 03:15」,「2016-03-13 03:30」,「2016-03- 13 03:45「,」2016-03-13 04:00「]

這些要點正在起作用很好,當時區內沒有DST發生。但是,當DST適用時,由於這個規模爲23小時,圖表中缺少了凌晨2點到凌晨3點之間的點。 無論DST是否適用,我們都需要在圖中繪製所有點。 下面的代碼我們使用,但它不工作

var chart = c3.generate({ 
    data: { 
     x: 'x', 
     xFormat: '%Y-%m-%d %H:%M', // 'xFormat' can be used as custom format of 'x' 
     columns: [ 
      ["x", "2016-03-13 00:00", "2016-03-13 00:15", "2016-03-13 00:30", "2016-03-13 00:45", "2016-03-13 01:00", "2016-03-13 01:15", "2016-03-13 01:30", "2016-03-13 01:45", "2016-03-13 02:00", "2016-03-13 02:15", "2016-03-13 02:30", "2016-03-13 02:45", "2016-03-13 03:00", "2016-03-13 03:15", "2016-03-13 03:30", "2016-03-13 03:45", "2016-03-13 04:00"],//   ['x', '20130101', '20130102', '20130103', '20130104', '20130105', '20130106'], 
      ['data1', 30, 200, 100, 400, 150, 250,30, 200, 100, 400, 150, 250.30, 200, 100, 400, 150] 
     ] 
    }, 
    axis: { 
     x: { 
      type: 'timeseries', 

      fit: true, 
      tick: { 
       format: '%Y-%m-%d %H:%M:%S' 
      } 
     } 
    } 
}); 

回答

0

嘗試使用日期字符串與時區偏移。

var dateFormatter=d3.time.format("%Y-%m-%d %H:%M%Z"); 
columns[0].forEach(function(d,idx,theArray){ 
    if(d!='x'){ 
     theArray[idx] = dateFormatter(new Date(d)); 
    } 
}); 
+0

'[「×」,「2016年3月13日00:00- 0500「,」2016-03-13 00:15-0500「,」2016-03-13 00:30-0500「,」2016-03-13 00:45-0500「,」2016-03-13 01: 00-0500「,」2016-03-13 01:15-0500「,」2016-03-13 01:30-0500「,」2016-03-13 01:45-0500「,」2016-03-13 03:00-0400「,」2016-03-13 03:15-0400「,」2016-03 -13 03:30-0400「,」2016-03-13 03:45-0400「,」2016-03-13 03:00-0400「,」2016-03-13 03:15-0400「,」2016 -03-13 03:30-0400「,」2016-03-13 03:45-0400「,」2016-03-13 04:00-0400「]' 我正在使用上述補丁獲取此數組。 這裏3 am間隔重複兩次,但我們需要2 am間隔。 –

1

有一對夫婦的這間本地和UTC時間開關設置,一個用於數據,一個用於軸,雖然數據一個不正式尚未暴露,且必須通過C3的內部屬性進行

c3.chart.internal.fn.additionalConfig.data_xLocaltime = false; 

var chart = c3.generate({ 
    data: { 
     x: 'x', 
     xFormat: '%Y-%m-%d %H:%M', // 'xFormat' can be used as custom format of 'x' 
     columns: [ 
      ["x", "2016-03-13 00:00", "2016-03-13 00:15", "2016-03-13 00:30", "2016-03-13 00:45", "2016-03-13 01:00", "2016-03-13 01:15", "2016-03-13 01:30", "2016-03-13 01:45", "2016-03-13 02:00", "2016-03-13 02:15", "2016-03-13 02:30", "2016-03-13 02:45", "2016-03-13 03:00", "2016-03-13 03:15", "2016-03-13 03:30", "2016-03-13 03:45", "2016-03-13 04:00"], 
      /*["x", "2016-03-27 00:00", "2016-03-27 00:15", "2016-03-27 00:30", "2016-03-27 00:45", "2016-03-27 01:00", "2016-03-27 01:15", "2016-03-27 01:30", "2016-03-27 01:45", "2016-03-27 02:00", "2016-03-27 02:15", "2016-03-27 02:30", "2016-03-27 02:45", "2016-03-27 03:00", "2016-03-27 03:15", "2016-03-27 03:30", "2016-03-27 03:45", "2016-03-27 04:00"],*/ 
      ['data1', 30, 200, 100, 400, 150, 250,30, 200, 100, 400, 150, 250.30, 200, 100, 400, 150] 
     ] 
    }, 
    axis: { 
     x: { 
      type: 'timeseries', 

      fit: true, 
      tick: { 
       format: '%Y-%m-%d %H:%M:%S' 
      }, 
      localtime: false, 
     } 
    } 
}); 

(I在英國使用的語言環境來測試因爲這是當白天小時改變發生在這裏2016年3月27日的數據)

+0

非常感謝您發佈此信息。我試圖弄清楚如何讓C3在數據中解析UTC的日期。 –