4

d3.jsパックのレイアウトに問題があります。円が重なっていて、理由がわかりません...

この例のコードを使用しました:

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

ここに画像の説明を入力してください

そしてそれが私の仕事です:

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

ご覧のとおり、重複すると図が使用できなくなります。

4

2 に答える 2

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 に答える
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 に答える