我试图根据数据动态缩放某些形状。这就是我到目前为止所拥有的:
svg.selectAll(".point")
.data(data)
.enter()
.append("path")
.attr("class", "point")
.attr("d", d3.svg.symbol().type("triangle-up"))
.attr("transform", function(d) { return "translate(" + x(d.x) + "," +
y(d.y) + ")"; });
我可以添加另一个attr吗?我尝试使用以下但不工作:
.attr("transform", "scale(xMap)");
xMap是缩放到范围的数据值。
答案 0 :(得分:1)
您可以在同一个匿名函数中执行translate
和scale
。除此之外,您必须将字符串与数字连接起来。你正在做的事......
"scale(xMap)"
...你将字面上的“xMap”传递给scale()
。
因此,它应该是:
.attr("transform", function(d) {
return "translate(" + x(d.x) + "," + y(d.y) + ") scale(" + xMap + ")";
});