我正在尝试根据数据动态缩放某些形状。这是我到目前为止的内容:

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("transform", "scale(xMap)");


xMap是数据中缩放到一定范围的值。

最佳答案

您可以在同一匿名函数中执行translatescale。除此之外,您还必须将字符串与数字连接起来。您的工作方式...

"scale(xMap)"


...您实际上是将“ xMap”传递给scale()

因此,应为:

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

关于javascript - d3缩放基本形状,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46722858/

10-13 05:59