【问题标题】:D3.js: What is the (current) standard way of using force layout?D3.js:使用强制布局的(当前)标准方式是什么?
【发布时间】:2017-02-24 17:54:37
【问题描述】:

图上的强制布局可以通过以下步骤实现:

将图绑定到力布局:

var force = d3.layout.force()
  .gravity(.03)
  .charge(-400)
  .distance(150)
  .nodes(data.nodes)
  .links(data.links)
  .size([600, 400]);

为模拟步骤定义一个刻度函数:

force.on("tick", function(e) {
  vis.selectAll("circle")
  .attr("px", function(d) { return d.x; })
  .attr("py", function(d) { return d.y; });
  ...

启动、运行和停止力:

force.start();
for (var i = 0; i > 1000; i++) force.tick();
force.stop();

但是,根据文档 (https://github.com/d3/d3-force),力与 d3.forceSimulationsimulation.tick()simulation.nodes 等一起使用。

我的武力使用方式被弃用了吗?

如果是这样,首选的标准方法是什么?根据标准,我的示例看起来如何?

【问题讨论】:

  • 是的,已弃用。新版本 4.0 不向后兼容。新版本 4.0 甚至比 3.0...

标签: d3.js idioms


【解决方案1】:

d3.forceSimulation 是 D3 4.0 上的新方式。 d3.layout.force 是 D3 3.x 的方法。

【讨论】:

  • 我的代码示例将如何转化为新的方式?
猜你喜欢
  • 1970-01-01
  • 2013-07-15
  • 2016-06-05
  • 2012-10-28
  • 2012-10-21
  • 2017-03-02
  • 1970-01-01
  • 2013-08-21
  • 1970-01-01
相关资源
最近更新 更多