4

我对 d3.js 包布局有疑问。圆圈重叠,我不知道为什么......

我使用了这个例子中的代码:

http://mbostock.github.com/d3/talk/20111116/pack-hierarchy.html

在此处输入图像描述

这就是我的工作:

http://projekty.bron.it/d3-circles-all/

如您所见,重叠使图表无法使用。

4

2 回答 2

4

对我有帮助的是:通过排序更改流程顺序

所以你在哪里

var pack = d3.layout.pack()
.size([r,r])
.value(function(d) { return d.size; });

添加

var pack = d3.layout.pack()
.sort(d3.descending)
.size([r,r])
.value(function(d) { return d.size; });
于 2013-11-19T11:42:54.623 回答
4

我尝试实现相同的圆形包装示例并且也有重叠的圆圈。对我来说,问题是由于数据父节点有 0 个子节点和大小为 0。一旦我将具有空子数组的父节点更改为格式正确的叶子,问题就消失了。

数据结构之前的不良重叠:

root = {name:"root",
    children:[
       {name:"badchildlessparent", children:[]},
       {name:"parentnodewithchild", children:[{name:"a leaf",size=50}]}
     ]
}

数据结构后很好地打包:

root = {name:"root",
    children:[
        {name:"fixedit_now_child", size=1} ,
        {name:"parentnodewithchild", children:[{name:"a leaf",size=50}]}
    ]
}
于 2013-05-16T19:57:47.823 回答