如何设置与d3 v4的固定链接距离

dcs*_*san 14 javascript graph d3.js

所有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));
Run Code Online (Sandbox Code Playgroud)

我尝试过各种类似的组合:

  // .force("link", d3.forceLink().distance(20).strength(1))
  // .force("linkDistance", 20)
  // .force("link", d3.forceLink().id(function(d) { return d.id; }))
Run Code Online (Sandbox Code Playgroud)

但没有运气!

所以似乎link_distance无法修复?它是力量和(距离,无论是什么)的结果

那么如何在d3 v4中申请strengthdistance链接?是应用于模拟还是其他什么?

小智 24

你几乎更接近改变v4的距离!检查此更改,它适用于我:

    var simulation = d3.forceSimulation()
    .force("link", d3.forceLink().id(function(d, i) { return i; }).distance(100).strength(1))
    .force("charge", d3.forceManyBody())
    .force("center", d3.forceCenter(width / 2, height / 2));
Run Code Online (Sandbox Code Playgroud)