快速开始

安装

使用 npm、pnpm、yarn 或 bun 安装:

npm
yarn
pnpm
bun
npm install @antv/layout

使用

接下来将介绍图布局算法的通用用法。

1. 准备图数据

@antv/layout 使用一种 通用、轻量的图数据结构

const data = {
  nodes: [{ id: 'node1' }, { id: 'node2' }, { id: 'node3' }],
  edges: [
    { source: 'node1', target: 'node2' },
    { source: 'node2', target: 'node3' },
  ],
};

数据结构包含 nodes 数组和可选的 edges 数组,每个节点需要 id 字段,每条边需要 sourcetarget 字段。

2. 布局初始化

@antv/layout 按需引入布局算法:

import { CircularLayout } from '@antv/layout';

然后创建算法实例,并传入初始化参数:

const layout = new CircularLayout({
  center: [200, 200],
  radius: 150,
});

这些参数也可以在执行时传入。

3. 执行布局

调用 execute 开始计算布局,这过程中不会改变原始数据:

await layout.execute(data);

也可以在执行算法时传入参数:

await layout.execute(data, {
  center: [200, 200],
  radius: 150,
});

4. 读取布局结果

布局完成后,可以通过 forEachNode 遍历节点位置结果:

layout.forEachNode((node) => {
  console.log(node.x, node.y);
});

也可以使用 forEachEdge 遍历边的结果。

完整示例

下面是一个完整示例,我们将所有节点和边渲染出来。

Loading...

现在你应该能在页面上看到一个简单的圆形布局图。