0

假设我们有一个 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)。这两种选择的优缺点是什么?

4

1 回答 1

1

我认为这是一个很小的区别,可能是复制和粘贴attr使用匿名函数设置的其他 s (如在第二种情况下)。应该没有理由包装y匿名函数。

于 2013-02-13T17:26:52.687 回答