2017-10-13 178 views
1

我试图根据数据动态缩放一些形状。这是我到目前为止:d3缩放基本形状

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是数据缩放到一个范围的值。

回答

1

您可以在同一个匿名函数中执行translatescale。除此之外,你必须连接字符串和数字。你正在做的方式...

"scale(xMap)" 

...你传递字面意思是 “XMAP” 到scale()

因此,它应该是:

.attr("transform", function(d) { 
    return "translate(" + x(d.x) + "," + y(d.y) + ") scale(" + xMap + ")"; 
}); 
+0

感谢完美的作品! – ajax2000