假设我们有一个 y 尺度,它将数据域转换为每个数据元素 20 像素的范围带。
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)
。这两种选择的优缺点是什么?