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

use*_*864 6 svg graph nodes d3.js 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); 
Run Code Online (Sandbox Code Playgroud)

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

Uncaught TypeError: Object function (d){return "circle";} has no method 'indexOf' 
Run Code Online (Sandbox Code Playgroud)

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

mbo*_*ock 5

使用d3.svg.symbol,如力导向符号示例中所示。