Mindmap 脑图树
上一篇
Mds 高维数据降维布局
下一篇
Radial 径向布局
Loading...
脑图树布局适用于树状结构的层次化布局,支持左右两侧展开,深度相同的节点将会被放置在同一层。需要注意:布局会考虑节点的大小。参考更多脑图布局样例或源码。
const graph = new Graph({layout: {type: 'mindmap',direction: 'H',preLayout: false,getHeight: () => 32,getWidth: () => 32,getVGap: () => 16,getHGap: () => 72,},});
属性 | 描述 | 类型 | 默认值 | 必选 |
---|---|---|---|---|
type | 布局类型 | mindmap | - | ✓ |
direction | 布局方向,可选值 | H | LR | RL | TB | BT | LR | |
getHeight | 计算每个节点的高度 | (d?: Node) => number | ✓ | |
getWidth | 计算每个节点的宽度 | (d?: Node) => number | ✓ | |
getVGap | 每个节点的垂直间隙,注意实际两个节点间的垂直间隙是2倍的vgap | (d?: Node) => number | ||
getHGap | 每个节点的水平间隙,注意实际两个节点间的水平间隙是2倍的hgap | (d?: Node) => number | ||
getSide | 设置节点排布在根节点的左侧/右侧,如未设置,则算法自动分配左侧/右侧。注意:该参数仅在H 布局方向上生效 | (d?: Node) => string |
H
|LR
|RL
|TB
|BT
Default:'LR'
树布局的方向
'H'
:horizontal(水平)—— 根节点的子节点分成两部分横向放置在根节点左右两侧。可传入getSide
方法指定每个节点的左右分布逻辑,不传则默认将前半部分放置在右侧,后半部分放置在左侧。'LR' | 'TB'
:将子节点排布在根节点的右侧;'RL'
:将子节点排布在根节点的左侧;BT
:将子节点排布在根节点右侧,然后将整个图沿X轴旋转180°;(d?: Node) => number
每个节点的宽度
示例:
(d) => {// d 是一个节点if (d.id === 'testId') return 50;return 100;};
(d?: Node) => number
每个节点的高度
示例:
(d) => {// d 是一个节点if (d.id === 'testId') return 50;return 100;};
(d?: Node) => number
每个节点的水平间隙
示例:
(d) => {// d 是一个节点if (d.id === 'testId') return 50;return 100;};
(d?: Node) => number
每个节点的垂直间隙
示例:
(d) => {// d 是一个节点if (d.id === 'testId') return 50;return 100;};
(d?: Node) => string
设置节点排布在根节点的左侧/右侧。注意:该参数仅在direction
为H
时生效。如未设置,会默认将子节点前半部分放置在右侧,后半部分放置在左侧,参考getSide自动计算逻辑。
示例:
(d) => {// d 是一个节点if (d.id === 'test-child-id') return 'right';return 'left';};
direction='H'
很适合渲染血缘图中查看指定节点的上下游血缘的场景,上游分布在中心节点的左侧,下游分布在右侧;