我正在使用 https://github.com/vasturiano/force-graph 中的 force-graph
D3 可视化。这似乎提供了很棒的高级 API 来创建力导向图,但我发现很难自定义,因为我是 Javascript 新手。
<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/