mcpField
S
syncfusion-angular-sankey

syncfusion-angular-sankey

github.com/syncfusion数据与数据库0262 次安装1 周前更新
代码仓库

关于 syncfusion-angular-sankey

面向 Angular 开发者的 Syncfusion Sankey 图实现指南。内容涵盖以节点和按数量缩放的连线呈现流向数据,以及样式和交互设置。

主要功能

  1. 01节点与按数量缩放的流向连线
  2. 02水平或垂直布局
  3. 03自定义标签、图例和工具提示
  4. 04基于数据的节点与连线样式
  5. 05交互及生命周期事件
  6. 06打印并导出图像或 PDF

适用场景

  1. 01描绘能源分配
  2. 02可视化供应链流转
  3. 03展示资金流向
  4. 04呈现带分支的流程步骤

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/syncfusion/angular-ui-components-skills --skill syncfusion-angular-sankey

安装后在 Claude Code 中输入/syncfusion-angular-sankey确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

references/
advanced-features.md
api-reference.md
appearance-and-sizing.md
customization-and-styling.md
events-and-interactions.md
getting-started.md
labels-legends-tooltips.md
nodes-and-links.md

详细介绍

实现 Syncfusion Angular Sankey

Sankey 组件使用节点和链接来可视化实体之间的定向流动和关系。它非常适合展示流程、能源分配、资源分配和层级关系,其中链接宽度按比例表示数量。

何时使用此技能

在以下情况下使用 Sankey 组件:

  • 可视化流量数据: 展示定向流动,链接宽度按比例表示数量
  • 展示流程步骤: 表示多阶段流程或工作流
  • 分析资源分配: 可视化资源在系统中的流动
  • 比较类别: 展示类别之间的关系和分布
  • 展示层级结构: 呈现带有加权连接的组织结构或层级结构

组件概述

Sankey 图由以下部分组成:

  • 节点: 表示来源、汇点和中间实体(可自定义宽度、颜色和标签)
  • 链接: 表示节点之间的流动(宽度与数值成正比,可自定义曲率和颜色)
  • 标签: 以可配置的位置和样式显示节点和链接信息
  • 图例: 可选图例,用于对节点进行分类
  • 工具提示: 悬停或点击时显示上下文信息

文档和导航指南

API 参考

📄 阅读: references/api-reference.md

快速入门

📄 阅读: references/getting-started.md

  • 安装 @syncfusion/ej2-angular-charts 包
  • 配置 Angular 19+ 独立组件
  • 初始化基本 Sankey 并进行首次渲染
  • 注入模块(Tooltip、Legend 服务)
  • 绑定初始数据
  • 何时使用: 从这里开始进行配置,并查看首个可运行示例
节点和链接

📄 阅读: references/nodes-and-links.md

  • 定义节点结构(id、label、value)
  • 自定义节点外观(宽度、内边距、颜色、不透明度)
  • 设置单个节点样式和覆盖项
  • 定义节点之间的链接关系
  • 配置链接样式(曲率、不透明度、颜色)
  • 节点偏移和定位
  • 何时使用: 需要配置图表结构、自定义节点/链接或控制位置时
外观和尺寸

📄 阅读: references/appearance-and-sizing.md

  • 设置组件尺寸(宽度、高度、自适应尺寸)
  • 自定义背景颜色和边框
  • 控制边距
  • 应用主题(Material、Bootstrap、Tailwind 等)
  • 全局节点和链接样式
  • 何时使用: 设置图表整体样式、创建自适应布局或集成主题时
标签、图例和工具提示

📄 阅读: references/labels-legends-tooltips.md

  • 设置节点和链接标签的位置与样式
  • 配置图例及其位置(上、下、左、右)
  • 设置图例高亮行为
  • 自定义工具提示模板和内容
  • 交互元素行为
  • 何时使用: 添加标签、图例或工具提示以提供更丰富的上下文时
自定义和样式设置

📄 阅读: references/customization-and-styling.md

  • 自定义元素级样式(分别设置节点和链接样式)
  • 使用预定义调色板和颜色映射
  • 基于数据进行条件样式设置
  • 创建自定义主题
  • 基于类别的样式策略
  • 优化大型图表的性能
  • 何时使用: 进行高级样式设置、颜色映射或动态外观调整时
事件与交互

📄 阅读: references/events-and-interactions.md

  • 生命周期事件(load、loaded)
  • 交互事件(nodeClick、nodeEnter、nodeLeave、linkClick)
  • 用于动态样式的渲染事件(nodeRendering、linkRendering)
  • 导出和打印事件
  • 事件处理模式
  • 适用场景: 处理用户交互、触发自定义逻辑,或响应图表生命周期
高级功能

📄 阅读: references/advanced-features.md

  • 水平和垂直方向
  • 支持从右向左(RTL)布局
  • 打印和导出功能(PNG、JPEG、SVG、PDF)
  • 无障碍功能(符合 WCAG 标准、屏幕阅读器)
  • 优化大量节点和链接时的性能
  • 边界情况和故障排除
  • 适用场景: 多语言支持、导出需求、无障碍需求或性能调优

快速入门示例

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
  };
}

常见模式

模式 1:按类别显示流程
// Define nodes with categories for legend grouping
const nodes = [
  { id: 'Power', label: { text: 'Power Plant' }, category: 'Source' },
  { id: 'Grid', label: { text: 'Grid' }, category: 'Intermediary' },
  { id: 'Home', label: { text: 'Households' }, category: 'Sink' }
];

// Links represent flow quantities
const links = [
  { sourceID: 'Power', targetID: 'Grid', value: 100 },
  { sourceID: 'Grid', targetID: 'Home', value: 80 }
];
模式 2:根据数值动态设置样式
// Render event handler for value-based coloring
onNodeRendering = (args: INodeRenderingEventArgs) => {
  const value = args.node.value || 0;
  args.node.color = value > 100 ? '#00A651' : value > 50 ? '#FFB81C' : '#E81B23';
};
模式 3:交互式高亮
// Use opacity to emphasize relationships
onNodeEnter = (args: INodeEnterEventArgs) => {
  args.node.highlightOpacity = 1;
};

onNodeLeave = (args: INodeLeaveEventArgs) => {
  args.node.highlightOpacity = 0.3;
};

关键配置属性

属性类型用途
widthstring组件宽度('700px'、'100%' 或 '90%')
heightstring组件高度('420px'、'450px' 或 '100%')
titlestring图表主标题
subTitlestring描述性副标题
orientationstring流向('Horizontal' 或 'Vertical')
enableRtlboolean启用从右向左布局
themestring内置主题(Material、Bootstrap、Tailwind、HighContrast 等)
nodeStyleObject全局节点样式(宽度、内边距、不透明度、颜色)
linkStyleObject全局链接样式(曲率、不透明度、colorType)
labelSettingsObject标签位置和可见性
legendSettingsObject图例配置和位置
tooltipObject工具提示模板和可见性设置
nodesArray节点定义(手动属性绑定)
linksArray链接定义(手动属性绑定)

常见用例

  1. 能源分配: 显示从发电端(太阳能、核能、天然气)到消费端(住宅、商业、工业)的电力流动
  2. 供应链: 展示产品经过制造 → 仓库 → 配送中心 → 零售商店的流转过程
  3. 资金流: 显示资金从来源(收入、投资)→ 运营 → 支出的流转过程
  4. 工作流程: 表示包含分支路径的多阶段流程,并分析瓶颈
  5. 用户旅程: 跟踪用户在应用各个板块中的流转(落地页 → 注册 → 入门引导 → 功能)
  6. 资源分配: 展示预算或资源在各部门或项目间的分配情况
  7. 层级结构: 通过带权关系展示组织或系统层级

相关文档: 有关其他数据可视化组件,请参阅 implementing-syncfusion-angular-components。

评论

支持 Markdown