折线图无法在x轴上绘制月份

时间:2016-10-20 04:40:47

标签: javascript jquery d3.js

当我使用json数据中的日期字段时,我无法在x轴上画几个月的折线图,然后它从那个日期开始使用,而不是绘图和控制台也没有显示任何错误,我用json数据http://jsfiddle.net/6zrMc/7

给出了这个场景的小提琴
data.forEach(function(d) {
    d.date =parseDate(d.date);  
    d.close = +d.close;
});
var valueline = d3.svg.line()
.x(function(d) { return x(d.date); })
.y(function(d) { return y(d.close); });    
x.domain(d3.extent(data, function(d) { return d.date; }));
y.domain([0, d3.max(data, function(d) { return d.close; })]);

这段代码工作正常,但是我在小提琴中显示的不适用于月份类型 请有人在此建议我。

1 个答案:

答案 0 :(得分:0)

您在x-scale中使用d.activemonth(这是一个时间尺度)。所以d.activemonth需要是一个日期对象。定义parseMonth的方式(没有.parse)它将日期对象解析为字符串。所以

parseMonth(new Date(d.date))

将返回字符串Oct,而x(d.activemonth)将是x('Oct'),这是无效的,因为x只接受日期对象。解决方案是改变

d.activemonth = parseMonth(new Date(d.date));

到有效的日期对象,例如

 d.activemonth = new Date(d.date);

(与d.date相同)。