d3.js - 如何在 d3 力布局中将节点更改为矩形而不是圆形?

标签 d3.js force-layout d3-force-directed

如何在以下 d3 forced directed graph 中将节点更改为矩形而不是圆形?

最佳答案

你必须附加一个 rect SVG 元素而不是 circle .

因此,在脚本中,它显示了以下内容:

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

你应该把它改成这样:
var node = svg.selectAll(".node")
      .data(graph.nodes)
    .enter().append("rect")
      .attr("class", "node")
      .attr("width", 40)
      .attr("height", 20)
      .style("fill", function(d) { return color(d.group); })
      .call(force.drag);

而且,它显示的地方:
node.attr("cx", function(d) { return d.x; })
    .attr("cy", function(d) { return d.y; });

将其更改为:
node.attr("x", function(d) { return d.x; })
    .attr("y", function(d) { return d.y; });

关于d3.js - 如何在 d3 力布局中将节点更改为矩形而不是圆形?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17853985/

相关文章:

svg - 在D3强制有向图中的链接上添加文本/标签

d3.js - 在 D3 forceSimulation 中拖动一个节点时停止移动其他节点

javascript - 如何在力导向图中禁用动画?

javascript - 在 d3 中添加刻度线

d3.js - d3js : make new parent data descend into child nodes

javascript - 为什么转换后旧条仍然可见

javascript - 了解 d3.js 源代码 : stuck at function. call() 和 "=+"

d3.js - 在此图像上看到的 d3j.s 力定向图集群示例发生了什么?

javascript - 强制定向图节点粘在中心

javascript - 可切换的 D3 和弦图