--- title: 径向布局 Radial order: 19 --- ## 概述 径向(Radial)布局是一种将节点以同心圆方式分层排列的图布局算法,常用于展示层级关系、社群结构等。该布局支持节点防重叠、分组排序等高级特性,适用于多种网络结构的可视化。 ## 使用场景 - 展示层级结构(如组织架构、家谱等) - 社群结构分析 - 需要突出中心节点及其辐射关系的场景 - 需要节点分组、排序的复杂网络 ## 在线体验 ## 配置方式 ```js const graph = new Graph({ layout: { type: 'radial', nodeSize: 32, unitRadius: 100, linkDistance: 200, }, // 其他配置... }); ``` ## 配置项 | 属性 | 描述 | 类型 | 默认值 | 必选 | | -------------------------- | -------------------------------------------- | ------------------------------------------------ | -------- | ---- | | type | 布局类型 | string | `radial` | ✓ | | center | 圆心坐标 | [number, number] | - | | | focusNode | 辐射中心节点 | string \| Node \| null | null | | | height | 画布高度 | number | - | | | width | 画布宽度 | number | - | | | nodeSize | 节点大小(直径) | number \| number[] \| ((nodeData: Node) => Size) | - | | | nodeSpacing | 节点最小间距(防重叠时生效) | number \| (nodeData: Node) => number | 10 | | | linkDistance | 边长度 | number | 50 | | | unitRadius | 每圈半径;为 null 时按布局空间自动计算 | number \| null | 100 | | | maxIteration | 最大迭代次数 | number | 1000 | | | maxPreventOverlapIteration | 防重叠最大迭代次数 | number | 200 | | | preventOverlap | 是否防止节点重叠 | boolean | false | | | sortBy | 同层节点排序字段或排序函数 | string \| ((nodeData: Node) => number \| string) | - | | | sortStrength | 同层节点排序强度 | number | 10 | | | strictRadial | 是否严格每层节点在同一圆环上(防重叠时生效) | boolean | true | | ## 代码示例 ### 基本用法 ```js import { Graph } from '@antv/g6'; fetch('https://assets.antv.antgroup.com/g6/radial.json') .then((res) => res.json()) .then((data) => { const graph = new Graph({ container: 'container', data, autoFit: 'center', layout: { type: 'radial', nodeSize: 32, unitRadius: 100, linkDistance: 200, }, node: { style: { labelFill: '#fff', labelPlacement: 'center', labelText: (d) => d.id, }, }, behaviors: ['drag-canvas', 'drag-element'], }); graph.render(); }); ``` 效果如下: 基本 Radial 辐射布局 ## 实际案例 - [基本 Radial 辐射布局](/examples/layout/radial/#basic) - [防止节点重叠的严格辐射布局](/examples/layout/radial/#strict-prevent-overlap) - [防止节点重叠的非严格辐射布局](/examples/layout/radial/#non-strict-prevent-overlap) - [排序聚类](/examples/layout/radial/#cluster-sort)