D3新手。
我正在进行d3.json
调用,在地图上放置多个点,并希望通过源数据中的值设置点的半径值。据我了解,要做到这一点,我需要将值(d.properties.natscale
)作为数字返回,而不是字符串(它是源数据中的数字)。但我不断得到一根绳子。
d3.json('mdg-output.json', function(data){
var populatedPlaces = topojson.feature(data, data.objects.mdg_place)
var cityPoints = svg.selectAll('circle').data(populatedPlaces.features)
var radius = d3.scale.linear().domain([0,1000]).range([0,110]);
cityPoints.enter()
.attr('r', function(d) {
// console.log(d.properties)
return radius(+d.properties.natscale)
})
.attr('fill', 'red');
}
我尝试使用一元+
运算符将输出转换为this和this链接中的数字,但它会被返回为一个字符串。请参阅以下内容中的r
值:
<path d="M122.37999457545584,717.0883851792267m0,4.5a4.5,4.5 0 1,1 0,-9a4.5,4.5 0 1,1 0,9z" r="80" fill="red"></path>
我在这里做错了什么,我该如何解决?