2014-02-11 89 views
0

考慮力向圖(http://bl.ocks.org/mbostock/950642)。如何在d3圖形中添加圖像到邊緣?

在這裏,我們添加鏈接:

var link = svg.selectAll(".link") 
     .data(json.links) 
     .enter().append("line") 
     .attr("class", "link"); 

的問題是:如何將一些圖像添加到邊(鏈接),並將其放置到線的中心?

這一個不工作:

link.append("image") 
      .attr("xlink:href", "some.png") 
      .attr("x", function(d) { return d.source.x + (d.target.x - d.source.x)/2; }) 
      .attr("y", function(d) { return d.source.y + (d.target.y - d.source.y)/2; }) 
    .attr("width", 24) 
    .attr("height", 24); 
+0

您需要將'image'元素附加到'svg'或'g'圖形,而不是'line'元素。 –

+0

@LarsKotthoff謝謝,但請你舉個例子嗎? – Andremoniy

+0

參見例如[這裏](http://bl.ocks.org/djjupa/5653692)。您可以用相同的方式將圖像附加到「線條」。 –

回答

1

的問題是,你的image元素附加到一個line元素 - 它不會顯示這種方式。您需要將其附加到頂級svg元素或g元素。 Here就是這樣做的一個例子。