Javascript d3.js强制可折叠标签
我在尝试重新创建时遇到了一些问题 我已尝试将的功能添加到 并试图做到:Javascript d3.js强制可折叠标签,javascript,svg,d3.js,force-layout,Javascript,Svg,D3.js,Force Layout,我在尝试重新创建时遇到了一些问题 我已尝试将的功能添加到 并试图做到: node.enter().append("text") .attr("dx", 12) .attr("dy", ".35em") .text(function(d) { return d.name }); 但是,这会导致圆圈消失,所有文本都聚集在左上角 你知道我做错了什么吗?这是我的JS: 这是一个JSFIDLE:由于某种原因,它在这里不起作用,因为我认为.json文件 这不是因为您调
node.enter().append("text")
.attr("dx", 12)
.attr("dy", ".35em")
.text(function(d) { return d.name });
但是,这会导致圆圈消失,所有文本都聚集在左上角
你知道我做错了什么吗?这是我的JS:
这是一个JSFIDLE:由于某种原因,它在这里不起作用,因为我认为.json文件
这不是因为您调用了两次node.enter()? 在追加圆之前调用一次,在追加文本之前调用一次 尝试用以下内容替换行
节点。enter()。追加(“文本”)
:
node.append("text")
我似乎已经能够通过在
tick()
函数中添加一个转换调用来解决这个问题
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
//node.attr("cx", function(d) { return d.x; });
// .attr("cy", function(d) { return d.y; });
是两个图形的组合 您好,从您的示例中删除所有不必要的(针对问题)代码将非常好。我遇到了类似的问题。看起来cx和cx仅用于圆形状的中心。如果你用一个标签把它分组,你有一个g,它的中心没有一个c。我也用它来固定节点的位置,但是你做了什么来更新链接呢?如果将节点移到屏幕外,这些节点将自身与节点断开连接。你也改变了他们吗?
node.attr("transform", function(d) { return "translate(" + d.x + "," + d.y + ")"; });
//node.attr("cx", function(d) { return d.x; });
// .attr("cy", function(d) { return d.y; });