2
我正在使用d3.force来设置节点并且有连接每个节点的链接。这一切的伟大工程,当我用圆圈作为节点:d3.js:强制布局是否仅适用于圆圈?
var nodes = [{ title: "ABC", group: 1 }, { title: "DEF", group: 1 }, { title: "Blah", group: 1 }];
var links = [{ source: 0, target: 1 }, { source: 0, target: 2 }];
var force = d3.layout.force()
.charge(-120)
.linkDistance(function(d) {
console.log(d);
return 250 * Math.random() + 100;
})
.size([r, r]);
force.links(links)
.nodes(nodes)
.start();
var link = svg.selectAll("line.link")
.data(links)
.enter()
.append("line")
.attr("class", "link")
.style("stroke-width", 1);
var node = svg.selectAll("circle.node")
.data(nodes)
.enter()
.append("circle")
.attr("class", "node")
.attr("r", 15)
.call(force.drag);
但是,如果我改变的节点使用“G”,它停止工作:
var node = svg.selectAll("g.node")
.data(nodes)
.enter()
.append("g")
.attr("class", "node")
.attr("r", 15)
.call(force.drag);
var circle = node.append("circle")
.attr("fill", function(d) {
var b = Math.floor(255 * Math.random()),
rgba = "rgba(0, 0, " + b + ", 0.7)";
return rgba;
})
.attr("r", 15);
我能看到圆被添加到g元素,但他们不是他们应该是的地方,他们没有通过链接连接。
我真的想使用“g”元素作为节点,以便我可以添加文本。有没有人有这方面的见解?
或者,如果有办法将文本添加到“圈子”元素。我也对此表示欢迎。
谢谢!
工程就像一个魅力!谢谢你,先生!!! – Bryan
啊,我仍然无法添加文本。所以这可以很好地在圆圈周围添加一个“g”包装,然而,当我尝试向“g”添加文本时,它打破了力指向图。这甚至有可能将文本添加到强制指令图中? – Bryan