D3.js D3JS节点作为图像

D3.js D3JS节点作为图像,d3.js,D3.js,通过这个,我们可以看到如何向节点添加图像,现在的问题是如何根据json数据在节点上添加不同的图像,例如,如果它的值为group:0,则在该节点上有一个图像,而group:1节点将有另一个图像。正如我所见,节点的创建是通过json进行的,它向所有节点添加了相同的类,因此可以通过何种方式进行更改,以根据json数据生成不同的图像。将“xlink:href”定义为数据的函数,而不是常量。例如: //从组ID到图像URL的映射。 var imageByGroup={ “0”:“red.png”, “1”

通过这个,我们可以看到如何向节点添加图像,现在的问题是如何根据json数据在节点上添加不同的图像,例如,如果它的值为group:0,则在该节点上有一个图像,而group:1节点将有另一个图像。正如我所见,节点的创建是通过json进行的,它向所有节点添加了相同的类,因此可以通过何种方式进行更改,以根据json数据生成不同的图像。

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

//从组ID到图像URL的映射。
var imageByGroup={
“0”:“red.png”,
“1”:“green.png”
};
//通过查找URL动态设置xlink:href属性。
image.attr(“xlink:href”,函数(d){
返回imageByGroup[d.group];
});

这是一个老问题,但您可以添加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 });