我似乎无法理解为什么是:
var enter = circle.enter().append("circle");
enter.attr("cy", 90);
enter.attr("cx", function(d) {
return d;
});
enter.attr("r", function(d) {
return Math.sqrt(d);
});
等于:
svg.selectAll("circle")
.data([32, 57, 112, 293])
.enter().append("circle")
.attr("cy", 90)
.attr("cx", String)
.attr("r", Math.sqrt);
在 cx 部分,它声明了一个函数,它只返回输入参数 d 而不对其做任何事情。这又是怎么变成的.attr("cx", String)
?
与Math.sqrt
根据我有限的理解,.data()
返回 d3 对象。.enter().attr()
都使用其数据点对选择数组中的每个元素进行操作。
然而,这种语法对我来说似乎很陌生,虽然我知道cx
并Math.sqrt
从数据数组中获取它们的值,但我似乎无法理解。也缺乏()
inString
和Math.sqrt