2016-05-14 43 views
0

我無法理解爲什麼我的代碼無法工作。以var格式存取D3數據

我對.attr('r', function(d)

我分配一個號碼year並通過添加d.pyear創建一個名爲category變量得到一個錯誤。我的csv文件中每個數據類別的名稱是p1900,p1901,p1902,p1903等。我嘗試在.attr('r', function(d)中訪問它,但它似乎沒有註冊。

cityPoints.attr('cx', function(d) {return projection([d.lon, d.lat])[0]}) 
     .attr('cy', function(d) {return projection([d.lon, d.lat])[1]}) 
     .attr('r', function(d) { 

     var category = "d.p"+year; 
      if (scale(category) != null) {return scale(category) + 'px'} 
      else {return '0px'}; 
      ;}) 
     .attr('stroke', 'white'); 

回答

0

你沒有實際訪問d對象,只是工作的一個叫d.p1900,而不是字符串。

嘗試這樣做:

cityPoints.attr('cx', function(d) {return projection([d.lon, d.lat])[0]}) 
    .attr('cy', function(d) {return projection([d.lon, d.lat])[1]}) 
    .attr('r', function(d) { 

     var category = "p" + year; 
     if (scale(d[category]) != null) { 
      return scale(d[category]) + 'px'; 
     } else { return '0px' }; 

    }).attr('stroke', 'white'); 
+0

哇<3太感謝你了!有用 :) –