この円パックのレイアウト例(http://bl.ocks.org/4063269)は、私が働いているプロジェクトのために完全である、しかし、それは、互いに対して各界のサイズ:円のサイズが固定されたd3.jsの円パックレイアウトを使用できますか?
固定半径を指定する簡単な方法があります各サークルのために?
私はソースコード、サンプル、google、およびstackoverflowを精査しており、役に立たないものは見つけられません。
サークルの正確なサイジングは私にとって重要です。
この円パックのレイアウト例(http://bl.ocks.org/4063269)は、私が働いているプロジェクトのために完全である、しかし、それは、互いに対して各界のサイズ:円のサイズが固定されたd3.jsの円パックレイアウトを使用できますか?
固定半径を指定する簡単な方法があります各サークルのために?
私はソースコード、サンプル、google、およびstackoverflowを精査しており、役に立たないものは見つけられません。
サークルの正確なサイジングは私にとって重要です。
あなたが与えた例のコード、<circle>
要素の大きさは、ここで決定されている従っている場合:
node.append("circle")
.attr("r", function(d) { return d.r; })
// ...
50
、たとえば、に円の大きさを修正するには、あなたがこれを行うことができます:
node.append("circle")
.attr("r", function(d) { return 50; })
// ...
この意志、howeve r、コメントで指摘されているレイアウトを破る。これを修正するためには、各ノードに同じ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};
}
返信いただきありがとうございます!私は実際にそれを試みたが、それはレイアウトを破る: http://cl.ly/image/2M3o1T2n2k1V。見える方法は次のとおりです。http://cl.ly/image/1U1b3v3m152W – user2058412
可能な修正を加えて答えを更新しました。 –
ことが可能であり、かつ行うためのシンプルなもの。最初の答えは正確ですが、私は私の方がもっとシンプルで明示的だと信じていますので、私もそれを付けています。
この例を見てみてください:あなたは、「定数」ボタンを押すと、あなたはこのようなものが表示されますjsfiddle
:
をキーコード行はこれです:
pack.value(function(d) { return 100; })
これは、円の半径をデータの定数とみなします。 100は任意の定数であってもよい。この行は、サークルパックの初期化(おそらくこれに当てはまる)または再初期化(私の例のように)で適用することができます。
これが役に立ちます。
user2058412、私の答えを見ていただけますか?それはあなたにとって有益ですか? – VividD