Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3.js强制可折叠标签_Javascript_Svg_D3.js_Force Layout - Fatal编程技术网

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; });