传递Date对象时,D3 v4返回scaleTime的错误

时间:2016-12-29 09:25:40

标签: javascript d3.js

我正在尝试创建一个简单的条形图,其中x轴的格式为日期。我已经定义了我的x,

var minDate = new Date(data[0][0]);
var maxDate = new Date(data[274][0]);

var x = d3.scaleTime()
          .domain(minDate, maxDate).range([0, width]);

但是,当我尝试从我的图表中调用它时出现错误

chart.selectAll('.bar')
         .data(data)
         .enter().append('rect')
         .attr('class', 'bar')
         .attr('x', function(d){
          return x(new Date(d[0]));
         })

错误说

  

错误:属性x:预期长度,“NaN”。

不确定我做错了什么。日期对象是否仍然在D3 v4中使用scaleTime?

如果有人想看一下,这是数据集的链接 https://raw.githubusercontent.com/FreeCodeCamp/ProjectReferenceData/master/GDP-data.json

这是我正在处理此代码的codepen的链接

http://codepen.io/redixhumayun/pen/ZBdmQp?editors=0010

1 个答案:

答案 0 :(得分:3)

在d3比例中,domain将数组作为参数。因此,它应该是:

.domain([minDate, maxDate])