这是更具概念性的问题,而不是技术性的问题。因此,我只参加了相关的部分。 我正在d3中使用rect制作条形图。它运作良好,但我想更新以下代码,以便可以将最后四行简化为一个。
g.selectAll(".bars")
.data(data)
.enter()
.append("rect")
.attr("class", "bars")
.attr("x", function(d, i) { return xScale(d.x); })
.attr("width", xScale.bandwidth())
.attr("y", function(d) { return yScale(d.y); })
.attr("height", function(d) { return height - yScale(d.y); });
我尝试制作一个包含bar属性的var,并在选择rect时获取它。
var barAttrs = {
x: function(d, i) { return xScale(d.x); },
width: xScale.bandwidth(),
y: function(d) {return yScale(d.y); },
height: function(d) { return height - yScale(d.y); }
}
g.selectAll(".bars")
.data(data)
.enter()
.append("rect")
.attr("class", "bars")
.attr(barAttrs);
它应该在理论上起作用,但是,它不起作用。你碰巧知道缺少什么吗?
谢谢