我正在使用https://github.com/vasturiano/force-graph中的force-graph
D3可视化。这似乎提供了强大的高级API来创建力导向图,但是由于我是Java语言的新手,因此我很难对其进行自定义。
<script src="//unpkg.com/force-graph"></script>
<script src="http://d3js.org/d3.v4.min.js" charset="utf-8"></script>
<script>
fetch('data.json').then(res => res.json()).then(data => {
const Graph = ForceGraph()
(document.getElementById('graph'))
.graphData(data)
.nodeAutoColorBy('group')
.linkSource('source')
.linkTarget('target')
})
</script>
JSON数据如下所示:
{
"nodes": [
{"id": "Myriel", "group": 1},
{"id": "Napoleon", "group": 1}
],
"links": [
{"source": "Napoleon", "target": "Myriel", "value": 1},
{"source": "Mlle.Baptistine", "target": "Myriel", "value": 8}
]
}
我正在尝试固定特定节点的位置,例如
id = Myriel
到x=500
,y=500
。根据d3强制documentation,我需要指定fx
和fy
。如何检索特定节点的ID来设置这些属性?任何帮助是极大的赞赏! 最佳答案
我找到了解决方案:
.nodeVal(node => {
node.fx = 500;
node.fy = 500
})
使用
nodeVal
方法,我可以访问节点的属性以对其进行修复。添加if
语句仅在我需要特定节点的情况下才可以更改它。感谢大家的帮助!关于javascript - 使用D3.js修复力图节点的位置,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/60614548/