Force
Force 布局经典的力导向布局方法,与 d3 的力导向布局方法相对应。其属性也与 d3 的力道布局参数相对应。
属性
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 布局。
const graph = new G6.Graph({
container: 'mountNode',
width: 1000,
height: 600,
layout: {
type: 'force',
center: [ 200, 200 ], // 可选,默认为图的中心
linkDistance: 50, // 可选,边长
nodeStrength: 30, // 可选
edgeStrength: 0.1, // 可选
collideStrength: 0.8, // 可选
nodeSize: 30, // 可选
alpha: 0.3, // 可选
alphaDecay: 0.028, // 可选
alphaMin: 0.01, // 可选
forceSimulation: null, // 可选
onTick: () => { // 可选
console.log('ticking');
},
onLayoutEnd: () => { // 可选
console.log('force layout done');
}
}
);