2012-11-14 5 views
1

저는 D3의 Cluster Dendogram Example과 매우 유사한 트리 구조를 렌더링하려고합니다.D3.js Flip Graph Horizontally

그래프를 수평으로 뒤집어서 부모 노드가 오른쪽에 있고 자식이 왼쪽에 있어야합니다. 레이블의 텍스트를 뒤집을 수 없습니다. 어떤 D3 방법이 이것을 담당합니까? 예로부터

코드 :이 경우

var width = 960, 
height = 2200; 

var cluster = d3.layout.cluster() 
    .size([height, width - 160]); 

var diagonal = d3.svg.diagonal() 
    .projection(function(d) { return [d.y, d.x]; }); 

var svg = d3.select("body").append("svg") 
    .attr("width", width) 
    .attr("height", height) 
    .append("g") 
    .attr("transform", "translate(40,0)"); 

d3.json("flare.json", function(error, root) { 
    var nodes = cluster.nodes(root), 
     links = cluster.links(nodes); 

    var link = svg.selectAll(".link") 
     .data(links) 
     .enter().append("path") 
     .attr("class", "link") 
     .attr("d", diagonal); 

    var node = svg.selectAll(".node") 
     .data(nodes) 
     .enter().append("g") 
     .attr("class", "node") 
     .attr("transform", function(d) { return "translate(" + d.y + "," + d.x + ")"; }) 

    node.append("circle") 
     .attr("r", 4.5); 

    node.append("text") 
     .attr("dx", function(d) { return d.children ? -8 : 8; }) 
     .attr("dy", 3) 
     .style("text-anchor", function(d) { return d.children ? "end" : "start"; }) 
     .text(function(d) { return d.name; }); 
}); 
+0

계층 적 레이아웃 조정에 대한 자세한 내용은 http://stackoverflow.com/questions/20930401/smooth-transitioning-between-tree-cluster-radial-tree-and-radial-cluster-layo를 참조하십시오. – VividD

답변

1

는 좌표는 클러스터 레이아웃에서 왔습니다. 레이아웃을 수정하거나 레이아웃에서 너비가 .x 인 코드 (예 : width - 160)를 뺄 수 있습니다. text-anchor 속성 값을 조정할 수도 있습니다.

+0

실제로 좌표는 JSON에서 인코딩되지 않습니다. 여기에서 JSON을 볼 수 있습니다. http://bl.ocks.org/d/4063570/flare.json – agscala

+0

아, 물론 맞습니다. 좌표는 레이아웃에서옵니다. 나는 대답을 편집했다. 나머지는 여전히 유효하다. –