2016-12-29 47 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])