当我使用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; })]);
这段代码工作正常,但是我在小提琴中显示的不适用于月份类型 请有人在此建议我。
答案 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
相同)。