2011-09-05 12 views
11

d3a demo of a Force-Directed Graph Layout.Bố cục hỗ trợ d3-js có định hướng lực là nút?

Thay vì vòng tròn, tôi muốn tất cả các nút trong biểu đồ là hình ảnh.

như vậy, tôi đã thay đổi

.append("svg:circle") 
     .attr("class", "node") 
     .attr("cx", function(d) { return d.x; }) 
     .attr("cy", function(d) { return d.y; }) 
     .attr("r", 5) 
     .style("fill", function(d) { return fill(d.group); }) 
     .call(force.drag); 

để

.append("xhtml:img") 
    .attr("src", "http://a577.phobos.apple.com/us/r1000/081/Purple/12/61/13/mzi.lgqdzwfu.png") 
    .call(force.drag); 

Nhưng tôi không thể nhìn thấy bất kỳ hình ảnh. Tôi đang làm gì sai?

Trả lời

18
node.append("svg:image") 
    .attr("class", "circle") 
    .attr("xlink:href", "https://d3nwyuy0nl342s.cloudfront.net/images/icons/public.png") 
    .attr("x", "-8px") 
    .attr("y", "-8px") 
    .attr("width", "16px") 
    .attr("height", "16px"); 

Dưới đây là một ví dụ của việc sử dụng một hình ảnh như nút: http://bl.ocks.org/950642

+1

Bạn có xảy ra cho biết làm thế nào để làm cho hình ảnh rect như một hình ảnh vòng tròn bên trong một nút hình tròn? Ví dụ của bạn sẽ hiển thị một vòng tròn và một hình ảnh trực tiếp bên trong nó. Cảm ơn. – derek

+0

@derek, khoảng bán kính biên giới: 100%; css phong cách? – andreybavt

+0

border-radius không hoạt động trên svg: image nhưng có hy vọng: http://stackoverflow.com/questions/7430580/setting-rounded-corners-for-svgimage – fredw