2016-12-29 57 views
1

我想创建一个简单的条形图,其中x轴用日期格式化。我定义我的X像这样,D3 v4在传入Date对象时为scaleTime返回错误

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])); 
     }) 

错误说

Error: attribute x: Expected length, "NaN".

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

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

这里是对codepen一个链接,我对这个

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

回答

3

在D3秤工作, domain以阵列为参数。因此,它应该是:

.domain([minDate, maxDate])