d3js图的时间解析和缩放

时间:2013-10-16 09:29:14

标签: javascript d3.js

我有this code绘制d3js multichart对象,值时间:年份值以此格式提供年份= 2011 ... 使用这种时间格式代码工作正常,但一旦我想以这种格式更改数据时间年=(Y-M-D H:M:S)

var data = [{"Year":"2011-10-01 20:46:04","Happy":"63.4","Sad":"42.7","Angry":"12.2","Surprised":"44.2"},
{"Year":"2012-10-01 17:02:04","Happy":"75.4","Sad":"32.7","Angry":"78.2","Surprised":"82.2"},
{"Year":"2013-10-01 19:55:44","Happy":"73.4","Sad":"20.7","Angry":"92.2","Surprised":"75.4"}];

我解析了数据年份:

 var parseDate=d3.time.format("%Y-%m-%d %H:%M:%S").parse; //line 13
 d.Year=parseDate(d.Year);  //and then line 53

但它不起作用,我怎样才能以这种格式读取数据年份:(Y-M-D H:M:S)

1 个答案:

答案 0 :(得分:0)

您的示例中的问题是您正在将对象的所有属性转换为数字。如果日期只是年份,则可以使用,但如果它是需要解析的字符串则不行。在您的情况下,您无需进行此转换,因为您可以将数字作为数字而不是字符串直接给出。也就是说,你不需要

for(var prop in d) {
    if(d.hasOwnProperty(prop)) {
        d[prop] = parseFloat(d[prop]);
    }
}

使用jsfiddle删除了转换代码here