Force

Force 布局经典的力导向布局方法,与 d3 的力导向布局方法相对应。其属性也与 d3 的力道布局参数相对应。Force - 图1

属性

center

类型: Array示例:[ 0, 0 ]默认值:图的中心是否必须:false说明:布局的中心

linkDistance

类型: Number默认值:50是否必须:false说明:边长度

nodeStrength

类型: Number默认值:null是否必须:false说明:节点作用力,正数代表节点之间的引力作用,负数代表节点之间的斥力作用

edgeStrength

类型:Number默认值:null是否必须:false说明:边的作用力,默认根据节点的出入度自适应

collideStrength

类型:Number默认值:1是否必须:false说明:防止重叠的力强度,范围 [0, 1]

nodeSize

类型: Number默认值:10是否必须:false说明:节点大小(直径)。用于碰撞检测。若不指定,则根据传入的节点的 size 属性计算。若即不指定,即节点中也没有 size,则默认大小为 10

alpha

类型:Number默认值:0.3是否必须:false说明:当前的迭代收敛阈值

alphaDecay

类型:Number默认值:0.028是否必须:false说明:迭代阈值的衰减率。[0, 1],0.028 对应迭代书为 300

alphaMin

类型:Number默认值:0.001是否必须:false说明:停止迭代的阈值

forceSimulation

类型:Object默认值:null是否必须:false说明:自定义 force 方法,若不指定,则使用 d3 的方法

onTick

类型:Function默认值:{}是否必须:false说明:每一次迭代的回调函数

onLayoutEnd

类型:Function默认值:{}是否必须:false说明:布局完成后的回调函数

方法

与父类 Layout 的方法相同。使用该布局时不需要关心内部方法的调用,由 G6 控制。

使用方法

实例化图时配置到 layout 中,如果没有配置 layout 默认使用 Random 布局。

  1. const graph = new G6.Graph({
  2. container: 'mountNode',
  3. width: 1000,
  4. height: 600,
  5. layout: {
  6. type: 'force',
  7. center: [ 200, 200 ], // 可选,默认为图的中心
  8. linkDistance: 50, // 可选,边长
  9. nodeStrength: 30, // 可选
  10. edgeStrength: 0.1, // 可选
  11. collideStrength: 0.8, // 可选
  12. nodeSize: 30, // 可选
  13. alpha: 0.3, // 可选
  14. alphaDecay: 0.028, // 可选
  15. alphaMin: 0.01, // 可选
  16. forceSimulation: null, // 可选
  17. onTick: () => { // 可选
  18. console.log('ticking');
  19. },
  20. onLayoutEnd: () => { // 可选
  21. console.log('force layout done');
  22. }
  23. }
  24. );