用途
Syncfusion Angular Sankey 技能用于在 Angular 应用中实现 Syncfusion 的桑基图(Sankey)组件,以可视化实体之间的方向性流动与关系。桑基图由节点(Nodes)和链接(Links)构成,链接宽度与数值成比例,适合表达带权重的流向、流程步骤、资源分配和层级关系。
主要能力
- 节点(Nodes):表示源、汇和中间实体,可自定义宽度、颜色和标签。
- 链接(Links):表示节点之间的流动,宽度与数值成比例,可自定义曲率与颜色。
- 标签(Labels):显示节点和链接信息,支持位置与样式配置。
- 图例(Legend):可选,用于对节点进行分类。
- 提示(Tooltips):悬停或点击时显示上下文信息。
- 外观与尺寸:组件宽高、背景色、边框、边距、主题(Material、Bootstrap、Tailwind 等)。
- 自定义与样式:逐节点/逐链接样式、预定义调色板、数据驱动的条件样式、自定义主题、基于类别的样式策略、大图性能优化。
- 事件与交互:生命周期事件(load、loaded)、交互事件(nodeClick、nodeEnter、nodeLeave、linkClick)、渲染事件(nodeRendering、linkRendering)、导出与打印事件。
- 高级功能:水平/垂直方向、RTL 布局、打印与导出(PNG、JPEG、SVG、PDF)、无障碍(WCAG、屏幕阅读器)、大量节点/链接的性能优化、边界情况与故障排查。
使用方式
安装 @syncfusion/ej2-angular-charts 包,在 Angular 19+ 独立组件中引入 SankeyAllModule,并通过 dataSource、nodeSettings 等属性进行数据绑定与配置。技能文档按主题组织为多个参考文件:api-reference.md、getting-started.md、nodes-and-links.md、appearance-and-sizing.md、labels-legends-tooltips.md、customization-and-styling.md、events-and-interactions.md、advanced-features.md。
快速开始示例:
import { Component, ViewEncapsulation } from '@angular/core';
import { SankeyAllModule } from '@syncfusion/ej2-angular-charts';
@Component({
imports: [SankeyAllModule],
standalone: true,
selector: 'app-sankey-demo',
template: `<ejs-sankey [dataSource]="data" [nodeSettings]="nodeSettings"></ejs-sankey>`,
encapsulation: ViewEncapsulation.None
})
export class SankeyDemoComponent {
data: any[] = [
{ sourceID: 'S1', targetID: 'T1', value: 5 },
{ sourceID: 'S1', targetID: 'T2', value: 3 },
{ sourceID: 'S2', targetID: 'T1', value: 2 }
];
nodeSettings: any = {
width: 20,
padding: 10
};
}
常用配置属性包括:width、height、title、subTitle、orientation(Horizontal 或 Vertical)、enableRtl、theme、nodeStyle、linkStyle、labelSettings、legendSettings、tooltip、nodes、links。
适用场景
- 能源分配:展示从发电(太阳能、核能、天然气)到消费(住宅、商业、工业)的电力流动。
- 供应链:可视化产品从制造 → 仓库 → 配送中心 → 零售店的移动。
- 资金流动:展示资金在来源(收入、投资)→ 运营 → 支出之间的转移。
- 流程工作流:表示带分支路径和瓶颈分析的多阶段流程。
- 用户旅程:追踪用户在各应用环节的移动(落地页 → 注册 → 引导 → 功能)。
- 资源分配:展示预算或资源在部门或项目间的分配。
- 层级结构:可视化组织或系统层级及其带权关系。
限制
资料未提供该组件的收费、价格、平台兼容性细节或具体性能指标,相关内容暂未提供。