访问D3

时间:2016-05-14 19:42:36

标签: javascript d3.js

我无法理解为什么我的代码无法正常工作。

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

上收到错误消息

我正在为year分配一个号码,并通过添加categoryd.p来创建名为year的变量。我的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');

1 个答案:

答案 0 :(得分: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');