d3缩放基本形状

时间:2017-10-13 05:04:45

标签: javascript d3.js

我试图根据数据动态缩放某些形状。这就是我到目前为止所拥有的:

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 个答案:

答案 0 :(得分:1)

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

"scale(xMap)"

...你将字面上的“xMap”传递给scale()

因此,它应该是:

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