使用相对SVG宽度和高度在中心节点周围均匀分布节点

时间:2015-04-20 12:02:40

标签: javascript svg d3.js

我正在玩D3库,并有以下代码片段来设置节点的坐标:

node.enter().append("circle")
  .attr("class", "node")
  .attr("cx", function(d) { 
    return d.x; 
  })
  .attr("cy", function(d) { 
    return d.y; 
  })
  .attr("r", function(d) { return Math.sqrt(d.size) / 10; })
  .style("fill", color)
  .on("click", click)
  .on('mouseover', tip.show)
  .on('mouseout', tip.hide)
  .call(force.drag);

查看Plunker Example

我希望在父节点周围均匀分布子节点,以便最大化SVG空间的数据 - 尽管尝试调整"cy""cx"属性,这些节点当前也会聚集在一起通过"r"属性增加单个节点的大小。

1 个答案:

答案 0 :(得分:2)

要解决此问题,我更新了Force Layout上的两个默认方法属性,即.linkDistance().linkCharge()

var force = d3.layout.force()
.linkDistance(80)
.charge(-500);

之前

enter image description here

enter image description here

感谢@Mark提及Force Layout Documentation