11

使用这个http://bl.ocks.org/950642我们可以看到如何将图像添加到节点,现在的问题是如何根据 json 数据在节点上添加不同的图像,例如,如果它具有值 group:0在该节点上有一个图像,其中 group:1 节点将有另一个图像。正如我所看到的,节点的创建是通过 json 进行的,它将相同的类添加到所有节点,因此可以根据 json 数据将其更改为具有不同图像的方式。

4

2 回答 2

11

将“xlink:href”属性定义为数据的函数而不是常量。例如:

// A map from group ID to image URL.
var imageByGroup = {
  "0": "red.png",
  "1": "green.png"
};

// Set the xlink:href attribute dynamically by looking up the URL.
image.attr("xlink:href", function(d) {
  return imageByGroup[d.group];
});
于 2012-06-29T21:20:40.973 回答
3

这是一个老问题,但您可以添加 JSON 本身定义的不同图像:

//Include info in JSON
"nodes":[
    {"name":"Zapata","group":1,"imagen":"changa.png"},
    {"name":"Villa","group":1,"imagen":"poeta.png"},
    [...]

//Add some function like this
function imagen(d) { return d.imagen; }

//Or add it to node image attribute
image.attr("xlink:href", function(d) { return d.imagen });
于 2013-10-23T20:13:36.647 回答