D3.js中的可折叠树中的链接

时间:2013-07-06 14:31:14

标签: javascript arrays tree d3.js

我是D3的新手,所以我想在这个树形布局示例(http://bl.ocks.org/mbostock/4339083)中找出以下一些内容。

  1. 如何将链接(边缘)添加到链接(边缘),如果有从A到B的链接(B是A的子节点),则在链接上显示B的名称。
  2. 如何根据child中给出的大小更改链接的宽度,即如果有从A到B的链接,B的大小为50,则链接的宽度应为50px。
  3. 请帮助我解决这些问题,因为我无法理解必须要做的事情。

    谢谢。

1 个答案:

答案 0 :(得分:2)

对于标签,您需要将text元素附加到链接路径:

link.enter().insert("text", "g")
  .attr("x", function(d) { return (d.source.x+d.target.x)/2; })
  .attr("y", function(d) { return (d.source.y+d.target.y)/2; })
  .text(function(d) { return d.target.name; });

您可能需要调整标签位置。

要更改链接的宽度,您需要设置路径的stroke-width属性:

link.enter().insert("path", "g")
  .attr("class", "link")
  .attr("stroke-width", function(d) { return d.target.size; })
  .attr("d", function(d) {
    var o = {x: source.x0, y: source.y0};
    return diagonal({source: o, target: o});
  });