TypeError:d3.forceSimulation()。size不是函数(d3 v4)

时间:2017-09-03 16:52:33

标签: d3.js

我刚开始使用d3.js并复制了d3.js v3的示例并尝试将其调整为v4。我有以下部分代码:

var width = 960,
  height = 500,
  fill = d3.schemeCategory20;

// another code

var force = d3.forceSimulation()
  .size([width, height]) // the error occurred at this row 
  .nodes([{}])
  .linkDistance(50)
  .charge(-200)
  .on("tick", tick);

d3.forceSimulation()是v4的运算符,所以我的问题是:"我应该如何使用所有以下运算符,使用d3.js版本4的新d3.forceSimulation()语法" ?

提前致谢

2 个答案:

答案 0 :(得分:2)

只是因为size()不是simulation object method 有关详细信息,请参阅the docs

答案 1 :(得分:0)

根据此issue,您可以尝试如下使用forceX / Y力:

var force = d3.forceSimulation()
  .size([width, height]) // the error occurred at this row 
  .nodes([{}])
  .linkDistance(50)
  .charge(-200)
  .force("x", d3.forceX([width/2]).strength(0.01))
  .force("y", d3.forceY([height/2]).strength(0.01))
  .on("tick", tick);

您可以使用强度参数来控制图形的分散程度。