d3.js力导向图的不同节点符号

时间:2013-04-06 20:40:43

标签: svg graph d3.js nodes force-layout

如何在d3.js的强制定向库中将节点显示为不同的符号?我想实现类似于我在下面写的内容:

  var node = svg.selectAll(".node") 
      .data(graph.nodes) 
    .enter().append(function(d){return d.shape;}) 
      .attr("class", "node") 
      .attr("r", 5) 
      .style("fill", function(d) { return color(d.group); }) 
      .call(force.drag); 

每个节点都有编码形状(“rect”,“circle”等)。但是,我收到错误:

Uncaught TypeError: Object function (d){return "circle";} has no method 'indexOf' 

我与之相关的另一个问题是:如何在为每个形状应用不同属性之间切换?圆圈需要精炼“r”属性,但rects需要“he​​ight”和“width”。谢谢!

1 个答案:

答案 0 :(得分:4)

使用d3.svg.symbol,与force-directed symbols示例中一样。