【发布时间】:2017-01-07 17:22:36
【问题描述】:
所有 API 示例似乎仍然适用于 v3。 我试图了解如何使用固定距离的链接创建力图,例如: http://bl.ocks.org/d3noob/5141278
我查看了 link_distance 但不知道如何应用它: https://github.com/d3/d3-force/blob/master/README.md#link_distance
创建这样的图表:
let simulation = d3.forceSimulation()
.force("link", d3.forceLink().id(function(d) { return d.id; }))
.force("charge", d3.forceManyBody().strength(-150))
.force("center", d3.forceCenter(width / 2, height / 2));
我尝试了各种组合,例如:
// .force("link", d3.forceLink().distance(20).strength(1))
// .force("linkDistance", 20)
// .force("link", d3.forceLink().id(function(d) { return d.id; }))
但没有运气!
所以看起来 link_distance 无法修复? 这是力量和(距离,不管是什么)的结果
那么如何将 strength 和 distance 应用于 d3 v4 中的链接?
是应用于模拟还是其他?
【问题讨论】:
-
D3 v3 和 v4 都没有固定链接距离。看看我的answer 到"d3.js linkStrength influence on linkDistance in a force graph" 以获得对 v3 的解释。尽管发生了很大的变化,尤其是在部队布局方面,但同样的原则也适用于 v4。如果链接看起来具有相同的长度,这是偶然的,并且主要受周围其他参数和力的影响。
-
好的,谢谢。但我仍然不清楚如何使用 v4 API 设置 linkDistance 或 linkStrength 命令。我是把这些设置在
d3.forceSimulation还是其他东西上? -
是的,寻找 v4 和 v3 有点挑战。我会推荐两件事:1)仅在 blockbuilder.org/search#d3version=v4 上搜索 V4(直到很晚才找到)。 2)我的非平凡 d3 力图:bl.ocks.org/bill-mybiz/dfe5b70ad9b469e23b8820790fa53109。我这样做是为了一个重要的参考实现,因为不断遇到 v3 文档有点令人沮丧。它使用节点组(不仅仅是简单的圆圈)、es6 类结构等来动态添加/删除节点。它包括设置距离,以及一系列其他设置。
标签: javascript d3.js graph