2013-12-19 198 views
0

我有ISO日期格式「2013-07-20T17:01:30.500Z」的日期格式,我想繪製小時,分鐘和秒軸。d3.js:在x軸上顯示小時,分鐘,秒,毫秒

var minDate = d3.min(dataset, function(d) { 

      return d.timestamp; 
     }); 
     var maxDate = d3.max(dataset, function(d) { 
      return d.timestamp; 
     }); 

數據集是一個包含所有條目的json數組。

 var x = d3.time.scale().domain([minDate, maxDate]).range([0, w]); 

     var xScale = d3.time.scale().domain([minDate, maxDate]).range([0, w]); 

我正在使用以下代碼在圖形中創建x軸。

var format = d3.time.format("%H:%M:%S.%LZ"); 
     var xAxis = d3.svg.axis().scale(x).tickFormat(format); 

這是給我的錯誤 「錯誤:問題解析d =」 MNaN,NaNLNaN,」

http://jsfiddle.net/priya78/Q9W4J/

回答

-1

你需要將它們發送到規模前解析日期:

var x = d3.time.scale() 
    .domain(d3.extent(dataset.map(format.parse)) 
    .range([0, w]); 

由於您需要重複使用解析日期,因此在做任何其他操作之前修改您的data是一個好主意:

dataset.forEach(function(d){ d.timestamp = format.parse(d.timestamp); }) 

編輯:您format也是不正確的,請嘗試:

d3.time.format.utc("%Y-%m-%dT%H:%M:%S.%LZ") 

fixed fiddle

+0

它返回空dataset.forEach(函數(d){d.time = format.parse(d .timestamp); })每次都是 – asdfdefsad

+0

已更新的答案。 –

+0

但我只想在x軸上顯示小時,分鐘,秒,毫秒 – asdfdefsad

相關問題