假设我们有一个y-scale,它将数据域转换为每个数据元素20px的范围。
var y = d3.scale.ordinal()
.domain(data)
.rangeBands([0, 20 * data.length]);
我通常会使用此比例来以这种方式确定某事物的y坐标:
svg.selectAll("rect")
.data(data)
.enter()
.append("rect")
.attr("y", y)
但是在一些教程中,我看到了另一种语法。
.attr("y", function(d) { return y(d); })
我不确定这里发生了什么,在继续学习D3之前我想先了解一下。我知道y
是一个函数,因此括号内的d
将是该函数的参数。但是我们已经在y函数中指定了数据输入。我很想阅读我们用y(d)
实际做的事情的解释。这两种选择的优点和缺点是什么?
答案 0 :(得分:1)
我认为这可能是一个微小的差别,可能是因为复制和粘贴使用匿名函数设置的其他attr
而遗留下来的(如第二种情况)。应该没有理由将y
包装在匿名函数中。