我使用Mike Bostock的Radial Reingold–Tilford Tree代码作为示例,但是想根据包含在中的变量来控制节点的位置(只是半径)。 JSON数据的每个元素。
我可以为这样的节点做这个(在我提到的变量上使用线性刻度):
var node = svg.selectAll(".node")
.data(nodes)
.enter().append("g")
.attr("class", "node")
.attr("transform", function(d) { return "rotate(" + (d.x - 90) + ")translate(" + scale(d.variable) + ")"; })
但我无法弄清楚链接的开始和结束位置(需要与节点对应)如何由diagonal's
默认projection控制:
var diagonal = d3.svg.diagonal.radial()
.projection(function(d) { return [d.y, d.x / 180 * Math.PI]; });
任何人都可以解释这个投影是如何工作的,以及如何修改它以使链接在特定半径开始和结束?