Dagre

Dagre 是一种层次布局。Dagre - 图1

属性

rankdir

类型: String可选值:'TB' | 'BT' | 'LR' | 'RL'默认值:'TB'是否必须:false说明:布局的方向。T:top(上);B:bottom(下);L:left(左);R:right(右)。

  • 'TB':从上至下布局;
  • 'BT':从下至上布局;
  • 'LR':从左至右布局;
  • 'RL':从右至左布局。

align

类型: String可选值:'UL' | 'UR' | 'DL' | 'DR'默认值:'UL'是否必须:false说明:节点对齐方式。U:upper(上);D:down(下);L:left(左);R:right(右)

  • 'UL':对齐到左上角;
  • 'UR':对齐到右上角;
  • 'DL':对齐到左下角;
  • 'DR':对齐到右下角。

nodesep

类型: Number默认值:50是否必须:false说明:节点间距(px)。在rankdir 为 'TB' 或 'BT' 时是节点的水平间距;在rankdir 为 'LR' 或 'RL' 时代表节点的竖直方向间距

ranksep

类型: Function默认值:undefined是否必须:false说明:层间距(px)。在rankdir 为 'TB' 或 'BT' 时是竖直方向相邻层间距;在rankdir 为 'LR' 或 'RL' 时代表水平方向相邻层间距

nodesepFunc

类型: Function默认值:undefined示例

  1. d => {
  2. // d 是一个节点
  3. if (d.id === 'testId') return 100;
  4. return 10;
  5. };

是否必须:false说明:节点水平间距(px)的回调函数,通过该参数可以对不同节点设置不同的节点间距。在rankdir 为 'TB' 或 'BT' 时是节点的水平间距;在rankdir 为 'LR' 或 'RL' 时代表节点的竖直方向间距。优先级低于 nodesep,即若设置了 nodesep,则 nodesepFunc 不生效

ranksepFunc

类型: Number默认值:50示例

  1. d => {
  2. // d 是一个节点
  3. if (d.id === 'testId') return 100;
  4. return 10;
  5. };

是否必须:false说明:层间距(px)的回调函数,通过该参数可以对不同节点设置不同的层间距。在rankdir 为 'TB' 或 'BT' 时是竖直方向相邻层间距;在rankdir 为 'LR' 或 'RL' 时代表水平方向相邻层间距。优先级低于 ranksep,即若设置了 ranksep,则 ranksepFunc 不生效

controlPoints

类型: Boolean默认值:true是否必须: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: 'dagre',
  7. rankdir: 'LR', // 可选,默认为图的中心
  8. align: 'DL', // 可选
  9. nodesep: 20, // 可选
  10. ranksep: 50, // 可选
  11. controlPoints: true // 可选
  12. }
  13. );