ChartGraph 关系图
用于展示节点和边的关系图组件,支持力引导布局、圆形布局等多种布局方式,适合展示网络关系、组织结构、地铁线路等场景。
基础用法
基础的关系图用法,使用力引导布局。
查看代码
分类关系图
通过 categories 属性可以设置节点分类,不同分类的节点会显示不同的颜色。
查看代码
地铁线路图
关系图非常适合展示地铁线路图,通过节点表示站点,边表示线路连接。
查看代码
布局方式
通过 layout 属性可以设置不同的布局方式,支持 force(力引导)、circular(圆形)、none(无布局,使用固定坐标)。
查看代码
力引导布局配置
通过 force-config 属性可以自定义力引导布局的参数。
查看代码
自定义节点样式
每个节点可以单独设置样式,包括大小、颜色等。
查看代码
自定义边样式
每条边可以单独设置样式,包括颜色、宽度、类型等。
查看代码
缩放和平移
通过 roam 属性可以启用缩放和平移功能。
查看代码
拖拽节点
通过 draggable 属性可以启用节点拖拽功能。
查看代码
固定节点位置
通过设置节点的 x 和 y 坐标可以固定节点位置,需要配合 layout="none" 使用。
查看代码
API
Props
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| nodes | 节点数据数组 | ChartGraphNode[] | — | [{ name: '节点1', value: 1 }, ...] |
| links | 边数据数组 | ChartGraphLink[] | — | [{ source: '节点1', target: '节点2' }, ...] |
| categories | 分类数据数组(可选,用于图例和颜色分组) | ChartGraphCategory[] | — | [] |
| layout | 布局方式 | string | force / circular / none | force |
| forceLayout | 是否启用力引导布局 | boolean | — | true |
| forceConfig | 力引导布局配置 | object | — | { repulsion: 50, gravity: 0.1, edgeLength: 30, layoutIterations: 50 } |
| showLabel | 是否显示标签 | boolean | — | true |
| labelFontSize | 标签字体大小 | number | — | 12 |
| showLegend | 是否显示图例 | boolean | — | false |
| legendPosition | 图例位置 | string | top / bottom / left / right | top |
| height | 图表高度 | number | string | — | '400px' |
| width | 图表宽度 | number | string | — | '100%' |
| backgroundColor | 背景色 | string | — | transparent |
| draggable | 是否启用拖拽 | boolean | — | true |
| roam | 是否启用缩放和平移 | boolean | string | true / false / 'scale' / 'move' | false |
| nodeSize | 节点默认大小 | number | [number, number] | — | 20 |
| nodeColor | 节点默认颜色 | string | — | '#5470C6' |
| linkColor | 边默认颜色 | string | — | '#91CC75' |
| linkWidth | 边默认宽度 | number | — | 1 |
| animation | 是否启用动画 | boolean | — | true |
| animationDuration | 动画持续时间(毫秒) | number | — | 1000 |
| options | 完全自定义的 ECharts 配置项,传入后将以 options 为准,忽略其他属性 | object | — | undefined |
ChartGraphNode
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| name | 节点名称 | string | — | — |
| value | 节点值(可选,用于控制节点大小) | number | — | — |
| category | 节点分类(可选,用于分组和颜色) | number | string | — | — |
| x | 节点X坐标(可选,用于固定位置) | number | — | — |
| y | 节点Y坐标(可选,用于固定位置) | number | — | — |
| symbolSize | 节点大小(可选) | number | — | — |
| itemStyle | 节点样式(可选) | object | — | — |
| label | 节点标签配置(可选) | object | — | — |
ChartGraphLink
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| source | 源节点名称 | string | — | — |
| target | 目标节点名称 | string | — | — |
| value | 边的值(可选,用于控制边的粗细) | number | — | — |
| lineStyle | 边的样式(可选) | object | — | — |
| label | 边的标签(可选) | object | — | — |
ChartGraphCategory
| 参数 | 说明 | 类型 | 可选值 | 默认值 |
|---|---|---|---|---|
| name | 分类名称 | string | — | — |
| itemStyle | 分类样式(可选) | object | — | — |