使用指南布局推荐可选布局

思维导图布局 Mindmap

分支从中心主题向一侧或两侧展开。

概述

分支从中心主题向一侧或两侧展开。

使用场景

适合梳理主题、知识点和分类层级。

基本用法

这是可选布局。先导入并注册,再设置 layout.type。CDN 接入见可选布局。

import { Graph, register } from '@antv/g6-lite';
import mindmap from '@antv/g6-lite/layouts/mindmap';

register('layout', 'mindmap', mindmap);

const graph = new Graph({
  container,
  data,
  layout: { type: 'mindmap' },
});

配置项

参数描述类型默认值
direction'LR' 向右,'RL' 向左,'H' 通过 getSide 分配分支。'H' | 'LR' | 'RL''H'
getSide指定分支在左侧还是右侧。函数可读取节点、分支索引和父节点所在侧。返回 'left' 或 'right' 的函数返回 'right'
levelGap父子节点之间的水平留白。number120
nodeGap同侧相邻子节点之间的垂直留白。number30

布局通用配置项 · 布局参数参考

代码示例

父子关系通过边定义,source 填父节点的 ID,target 填子节点的 ID。

getSide 将 A、C 分支排在左侧,B、D 分支排在右侧。

正在加载示例…
拖动画布平移,滚轮缩放。
import { register } from '@antv/g6-lite';

import mindmap from '@antv/g6-lite/layouts/mindmap';

register('layout', 'mindmap', mindmap);

const layout = {
  type: 'mindmap',
  direction: 'H',
  levelGap: 100,
  nodeGap: 24,
  getWidth: () => 16,
  getHeight: (node: GraphNode) => node.id.length === 1 ? 64 : 16,
  getSide: (node: GraphNode) => /^[AC]/.test(node.id) ? 'left' : 'right',
};

对比树布局