2012-05-31 46 views

Trả lời

13

Mike Bostock, tác giả của D3, rất ân cần giúp đỡ với các giải pháp sau đây. Xác định kiểu cho g.link; Tôi vừa sao chép phong cách cho g.node. Sau đó, tôi thay thế "var link = ...." mã với những điều sau đây. Các hàm x và y đặt nhãn ở giữa đường dẫn.

var linkg = vis.selectAll("g.link") 
    .data(cluster.links(nodes)) 
    .enter().append("g") 
    .attr("class", "link"); 

linkg.append("path") 
    .attr("class", "link") 
    .attr("d", diagonal); 

linkg.append("text") 
    .attr("x", function(d) { return (d.source.y + d.target.y)/2; }) 
    .attr("y", function(d) { return (d.source.x + d.target.x)/2; }) 
    .attr("text-anchor", "middle") 
    .text(function(d) { 
     return "edgeLabel"; 
    }); 

Hàm văn bản lý tưởng nên cung cấp nhãn riêng cho từng cạnh. Tôi dân cư một đối tượng với tên của các cạnh tôi trong khi chuẩn bị dữ liệu của tôi, vì vậy chức năng văn bản của tôi trông như thế này:

.text(function(d) { 
     var key = d.source.name + ":" + d.target.name; 
     return edgeNames[key]; 
    }); 
+0

Một vài người đã bị cám dỗ để trao đổi của x và y là trong dòng thứ hai và thứ ba của ' linkg.append ("văn bản") 'mảnh. Xin vui lòng không, họ là chính xác như họ đang có. Có một bản cập nhật vì [ví dụ Dendrogram] (http://bl.ocks.org/mbostock/4063570) trên trang web D3 đã thay đổi. Dòng đầu tiên sẽ đọc: 'var linkg = svg.selectAll (". Link ")' –

Các vấn đề liên quan