svg - d3.js 力有向图的不同节点符号

标签 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”属性细化,但矩形需要“高度”和“宽度”。谢谢!

最佳答案

使用 d3.svg.symbol ,如 force-directed symbols例子。

关于svg - d3.js 力有向图的不同节点符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15855794/

相关文章:

Angular 2 svg :circle fill attribute binding

javascript - 使用 JavaScript 更改 SVG 图像颜色

java - 获取两个图顶点之间的边列表

algorithm - 找到关键节点的快速算法是什么?

ember.js - ember-data 作为 d3 的数据

reactjs - 如何解决 "Uncaught Error: unknown type: dragstart"问题

java - 在java中从许多小svg文件创建SVG文件

javascript - jQueryUI选项卡和Firefox:getBBox损坏了吗?

graph - Tensorflow:使用 CPU 的特定核心执行操作

javascript - d3.js 带有刷色的散点矩阵 - 比例误差