簡単なツリー レイアウトの例があります。ソース ノードとターゲット ノードに値を設定したい
データは次のようになります。
var Data = {"name" : "A", "info" : "tst", "childrens" : [
{"name" : "A1", x:100, y:100 },
{"name" : "A2", x:50, y:400 },
{"name" : "A3", x:50, y:100 },
{"name" : "A311", x:350, y:120 },
{"name" : "A312", x:250, y:170 },
{"name" : "A312", x:175, y:200 }
]};
ご覧のとおり、各ノードに x と y の値を定義して、必要な場所に配置しました。
ただし、レイアウトにはまったく影響がないようです。
投影を次のように変更しようとしました:
translate(" + d.x + "," + d.y + ")"
また、ノード変数を変更しようとしましたが、プロジェクションで変更した場合と同じ影響があるようです。
treelayout を使用して位置を設定できるかどうか疑問に思っていますが、許可されていません。
また、svg:circle を使用する代わりに、svg.symbol を使用したいと考えています。
node.append("path")
.attr("d", d3.svg.symbol().type(circle))
.attr("transform", "translate(0,0)")
ただし、代わりに、テキストなしで行だけを表示します-理由がわかりません。
したがって、基本的に、選択した場所に子とルートを配置しようとしました。
どんな助けやアドバイスも大歓迎です。 http://jsfiddle.net/3twUr/2/
編集:
var line = d3.svg.diagonal().data(data).enter()
.source({x: d.x, y: d.y})
.target({x: d.x, y: d.y});
svg.append("path")
.attr("fill", "none")
.attr("stroke", "black")
.attr("d", line);
var pos = [{source: "A" ,target: 'A1'},
{source: "A" , target: 'A2'} ];