使用这个http://bl.ocks.org/950642我们可以看到如何向节点添加图像,现在的问题是如何根据json数据在节点上添加不同的图像,例如,如果它有值组:0有一个该节点上的图像,其中group:1个节点将具有另一个图像。因为我可以看到节点的创建由json进行,并且它将相同的类添加到所有节点,因此可以根据json数据将其更改为具有不同的图像。
答案 0 :(得分:11)
将“xlink:href”attribute定义为数据函数而不是常量。例如:
// 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];
});
答案 1 :(得分: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 });