2011-09-05 15 views
11

d3 ha a demo of a Force-Directed Graph Layout.Il layout Force-Directed di d3-js supporta l'immagine come nodo?

Invece di cerchi, voglio che tutti i nodi del grafico siano immagini.

così, ho cambiato

.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); 

a

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

Ma io non riesco a vedere le immagini. Che cosa sto facendo di sbagliato?

risposta

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"); 

Ecco un esempio di utilizzo di un'immagine come nodo: http://bl.ocks.org/950642

+1

Ti capita di sapere come fare l'immagine rect come immagine cerchio all'interno di un nodo cerchio? Il tuo esempio mostrato mostrerà un cerchio e un'immagine retta al suo interno. Grazie. – derek

+0

@derek, che ne dici di raggio-bordo: 100%; stile css? – andreybavt

+0

border-radius non funziona su svg: image ma c'è speranza: http://stackoverflow.com/questions/7430580/setting-rounded-corners-for-svgimage – fredw