我无法理解为什么我的代码无法正常工作。
我在.attr('r', function(d)
我正在为year
分配一个号码,并通过添加category
和d.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');
答案 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');