D3.js 在流动数据交互网络演示中向节点添加标签

D3.js 在流动数据交互网络演示中向节点添加标签,d3.js,coffeescript,D3.js,Coffeescript,我尝试将永久标签(节点名称)添加到Jim共享的交互式网络演示中。() 作为D3和咖啡的新手,尽管我花了大量的时间试图理解D3和咖啡脚本,但还是无法实现目标 以下是我试图添加的咖啡脚本: node.enter().append("text") .attr("cx", (d) -> d.x) .attr("cy", (d) -> d.y) .text("text", (d) -> d.name) 我们将非常感谢您在实现这一目标方面提供的帮助。该示例使用D3V3.x。不幸的是,v3

我尝试将永久标签(节点名称)添加到Jim共享的交互式网络演示中。()

作为D3和咖啡的新手,尽管我花了大量的时间试图理解D3和咖啡脚本,但还是无法实现目标

以下是我试图添加的咖啡脚本:

node.enter().append("text")
.attr("cx", (d) -> d.x)
.attr("cy", (d) -> d.y)
.text("text", (d) -> d.name)

我们将非常感谢您在实现这一目标方面提供的帮助。

该示例使用D3V3.x。不幸的是,v3.x中有一种“魔力”会阻止你实现你想要的(更不用说
text
没有
cx
cy
):

这是
节点
选择,它是数据绑定选择:

node = nodesG.selectAll("circle.node")
.data(curNodesData, (d) -> d.id)
但是,下一行是:

node.enter().append("circle")
问题的魔力来了:

输入
追加
修改数据绑定选择。因此,当您尝试将文本附加到
节点
时,实际上是将
文本
元素附加到
元素,这将不起作用


解决方案:创建SVG组,您可以在其中添加圆圈和文本。

该示例使用D3V3.x。不幸的是,v3.x中有一种“魔力”会阻止你实现你想要的(更不用说
text
没有
cx
cy
):

这是
节点
选择,它是数据绑定选择:

node = nodesG.selectAll("circle.node")
.data(curNodesData, (d) -> d.id)
但是,下一行是:

node.enter().append("circle")
问题的魔力来了:

输入
追加
修改数据绑定选择。因此,当您尝试将文本附加到
节点
时,实际上是将
文本
元素附加到
元素,这将不起作用

解决方案:创建SVG组,您可以在其中添加圆圈和文本。

PS:D3V4.x中删除了“魔力”。另一篇博文:我不能检查源代码,因为我在手机上,但我打赌你链接的代码已经有组了。PS:D3V4.x中删除了“魔法”。另一篇博文:我不能检查源代码,因为我在手机上,但我打赌你链接的代码已经有组了。