私はd3.jsを使って視覚化しているデータセットを持っています。この時点でd3.jsのバブルを強制的/重力ベースのレイアウトに変換する
var xp = d3.scale.log().domain([300, 1e5]).range([0, width]),
yp = d3.scale.linear().domain([10, 85]).range([height, 0]),
radiusp = d3.scale.sqrt().domain([0, 5e8]).range([0, 40]),
colorp = d3.scale.category10();
:
次のようにXP、YP、colorpとradiuspが定義されているvar dot = svg.selectAll("g")
.data(data)
.enter()
.append("g");
dot.append("circle")
.attr("class", "dot")
.attr("cx", function(d) { return xp(x(d)); })
.attr("cy", function(d) { return yp(y(d)); })
.style("fill", function(d) { return colorp(color(d)); })
.attr("r", function(d) { return radiusp(radius(d)*2000000); });
dot.append("text")
.attr("x", function(d) { return xp(x(d)); })
.attr("y", function(d) { return yp(y(d)); })
.text(function(d) { return d.name; })
:私は次のように気泡の構成であり、気泡の形でデータ点を表していバブルのサイズは基本的にradiuspから来ており、colorはcolorpで定義されていますが、バブルはその位置に静的に表示されます(positionはxpとypによって定義されます)。
今私は、この例のように、正確にそれらを示しています: http://bl.ocks.org/mbostock/4063269
私はこのフォームでそれらを表示することで必要なもの: http://jsfiddle.net/andycooper/PcjUR/1/
それは:それらは重力機能を使用して詰め込まれていて、ある程度の電荷を持っていて、ある程度ドラッグされ弾かれていなければなりません。私はd3.layout.force()を通る方法があるが、これを実際にこのようなものに統合することはできないことがわかります。私に正しい道筋や実際の例やヒントを教えていただければ本当に感謝しています。ありがとうございました。
まだ回答がありませんか? – user2480542
'd3.layout.force()に統合中に直面している問題は何ですか – user568109
問題はd3.layoutです。force()は自動的にcxとcy座標を定義しており、アプローチと実装方法を正確に把握することはできません。気泡の位置を強制するxpとyp変数を削除しても、それを達成することはできません。最初は、これらのバブルの強制レイアウトを実装しようとしましたが、失敗しました。 : -/ – user2480542