d3.js:在x轴上显示小时,分钟,秒,毫秒

时间:2013-12-19 10:38:45

标签: javascript d3.js

我的日期格式为iso日期格式“2013-07-20T17:01:30.500Z”,我想在x轴上绘制小时,分钟和秒。

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

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

dataset是一个包含所有条目的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 个答案:

答案 0 :(得分:-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