8

このサークルパックのレイアウト例(http://bl.ocks.org/4063269)は、私が取り組んでいるプロジェクトに最適ですが、すべてのサークルのサイズを相互に相対的に設定します。

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

各円に固定半径を指定する簡単な方法はありますか?

ソースコード、例、グーグル、スタックオーバーフローを調べましたが、役に立たないようです。

円の正確なサイズは私にとって重要です。

4

2 に答える 2

2

あなたが与えた例のコードに従うと、<circle>要素のサイズはここで決定されます:

node.append("circle")
  .attr("r", function(d) { return d.r; })
// ...

円のサイズを に固定するには、次の50ようにします。

node.append("circle")
  .attr("r", function(d) { return 50; })
// ...

アップデート

ただし、コメントで指摘されているように、これはレイアウトを壊します。これを修正するには、value各ノードに同じものを提供できます。

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(name, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
    else classes.push({packageName: name, className: node.name, value: node.size});
  }

  recurse(null, root);
  return {children: classes};
}

に:

// Returns a flattened hierarchy containing all leaf nodes under the root.
function classes(root) {
  var classes = [];

  function recurse(name, node) {
    if (node.children) node.children.forEach(function(child) { recurse(node.name, child); });
    else classes.push({packageName: name, className: node.name, value: 1});
  }

  recurse(null, root);
  return {children: classes};
}
于 2013-02-10T22:19:35.267 に答える