2017-10-13 131 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