2014-03-05 61 views

回答

1

而是圆的,你将不得不准备<image> SVG元素并正确放置。在这个例子中我用小圆圈图标:

node.append('image') 
    .attr('xlink:href', 'images/circle.png') 
    .attr('x', function(d, i) { return -d.r/2; }) 
    .attr('y', function(d, i) { return -d.r/2; }) 
    .attr('width', function(d, i) { return d.r + 'px'; }) 
    .attr('height', function(d, i) { return d.r + 'px'; }) 

更新:具有不同的图像解决方案取决于您的设计和数据结构。一个可能的解决方案是定义图像的阵列:

var images = [ 'admiration.png', 'joy.png', 'hope.png', 'sadness.png', 'surprise.png', 'anger.png', 'worry.png', 'frustration.png']; 

,然后选择特定图像(假设是,图像驻留在images目录):

node.append('image') 
    .attr('xlink:href', function(d, i) { 
     return 'images/' + images[i]; 
    }) 
    .attr('x', function(d, i) { return -d.r/2; }) 
    .attr('y', function(d, i) { return -d.r/2; }) 
    .attr('width', function(d, i) { return d.r + 'px'; }) 
    .attr('height', function(d, i) { return d.r + 'px'; }) 
+0

这取代各界与相同的图像。我想为每个圈子提供一个不同的图像。我如何实现这一目标? –

+0

您需要为图像赋予不同的xlink:href属性。 –

+0

感谢您的更新。出于某种原因,这个解决方案对我来说并不合适。屏幕空白,控制台中没有错误。 –