2013-12-19 158 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

相关问题