无法使用新数据格式绘制图表

时间:2014-07-10 09:46:35

标签: javascript d3.js nvd3.js

我正在转换my existing chart以支持新的数据格式。

X轴的旧数据格式:使用时期格式的日期,如1356912000000(数字)
X轴的新数据格式:使用常规格式的日期,如"2012-12-31"(字符串)

Y轴的格式相同(数字)。

根据旧数据格式的图表:http://jsfiddle.net/rdesai/vfe2B/85/
按照新数据格式绘制图表:http://jsfiddle.net/rdesai/vfe2B/84/

对于旧格式,我将纪元日期转换为常规日期并将其提供给刻度线。对于新格式,不确定我需要做什么。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

请阅读D3 page on time formatting

在您的情况下,您只需要转换格式为" 2012-12-31"到日期:

> var dateFormat = d3.time.format("%Y-%m-%d");
> dateFormat.parse("2012-12-31");
Mon Dec 31 2012 00:00:00 GMT+0100 (CET)

修改:在这里找到一个工作小提琴http://jsfiddle.net/vfe2B/94/

错误是您需要使用这些日期解析器在创建图表时将字符串转换为日期。函数.tickformat只是控制你在轴上表示数据的方式,但你需要" feed"创建日期的图表,如下所示:

.x(function(d) { return dateFormat.parse(d[0]) })

我改变了jsfiddle中的tickformat,这样你就能更好地理解差异。