【发布时间】:2018-09-04 08:25:41
【问题描述】:
我有一个 plnkr,它可以创建像这样的节点有向图: http://plnkr.co/edit/Usru9pGp98ju2d0St6Wz?p=preview
目前,当我们使用此功能将鼠标悬停在节点上时,它会显示节点标题:
.on('mouseover', function(d) {
textTarget = d
text.attr('transform', 'translate(' + d.x + ',' + d.y + ')')
.text(d.id)
.style('display', null)
d3.select(this)
.style('fill', colors.nodes.hover)
d3.selectAll(childNodes(d))
.style('fill', colors.nodes.hover)
.style('stroke', colors.nodes.method)
.style('stroke-width', 2)
d3.selectAll(parentNodes(d))
.style('fill', colors.nodes.dep)
.style('stroke', colors.nodes.method)
.style('stroke-width', 2)
})
但我的想法是每次都显示标签。
我发现了一些类似的问题,他们要求将标签附加到节点,所以我尝试了这个:
node.append("text")
.attr('transform', function())
.attr('transform', 'translate(' + d.x + ',' + d.y + ')')
.text(d.id)
.style('display', null)
但是这样做会破坏我的图表。
我对 d3 世界并不陌生,因此无法弄清楚在这种情况下到底出了什么问题。
任何人都可以帮助我始终为所有节点显示标签(在节点圈内或附加它)
【问题讨论】:
标签: javascript angularjs d3.js