问题 d3将节点作为图像


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


990
2018-06-29 21:15


起源



答案:


定义“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];
});

11
2018-06-29 21:20



这很简单,非常感谢先生 - BlitzCrank


答案:


定义“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];
});

11
2018-06-29 21:20



这很简单,非常感谢先生 - BlitzCrank


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

3
2017-10-23 20:13