用途
该技能用于在 Syncfusion TypeScript 与 JavaScript 应用中实现桑基图(Sankey Diagram),将定量的流动与类别之间的关系可视化。节点代表来源、目标或中间阶段,连线代表有向流动,其渲染粗细由数值决定。
适用任务包括:可视化有向数据流、展示类别之间的流动规模、绘制收入分配图、展示能源生产与消耗、建模物料或库存流动、可视化转化漏斗、展示客户旅程、创建多阶段过程图等。
主要能力
技能覆盖的内容包括:节点与连线配置;提示(Tooltip)与图例(Legend);节点与连线高亮;桑基图交互事件;水平与垂直方向;从右到左(RTL)渲染;主题与视觉定制;在支持的情况下导出与打印;无障碍配置;响应式布局;运行时数据校验;性能优化;动态数据更新。
平台支持与使用方式
TypeScript:适用于使用 @syncfusion/ej2-charts npm 包、TypeScript 编译、Webpack/Vite 等模块打包器、强类型桑基模型、显式功能模块注入以及 IDE 智能提示与编译期校验的项目。安装命令为 npm install @syncfusion/ej2-charts,通过模块导入 Sankey 及相关模型,并在启用可选功能时注入对应模块。
JavaScript:适用于使用版本化 CDN 包、本地托管的 EJ2 全局包、传统 HTML 与 JavaScript 文件、全局 ej 命名空间且无需 TypeScript 编译的项目。全局 Sankey 构造函数为 ej.charts.Sankey。通过完整 EJ2 包加载的全局 JavaScript 不需要显式调用 Sankey.Inject(...)。
JavaScript 示例在可行处采用 ES5 兼容语法:var 声明、传统函数、不使用可选链、不使用 JavaScript 模块导入、使用全局 ej 命名空间。仍建议使用现代浏览器。
实现规则要点
技能给出了一系列实现规则,包括:提供完整可运行示例(含导入、模块注入、节点集合、连线集合、Sankey 配置、HTML 宿主元素、CSS 尺寸与 appendTo 调用);使用显式 DOM 挂载,避免将选择器作为构造函数第二个参数;确保宿主元素存在且 ID 与选择器匹配;为容器提供可测量的高度(如 width: '100%'、height: '500px'),避免 height: 'auto';为每个启用的 TypeScript 功能注入对应模块且不注入未使用模块;保持导入与注入同步;全局 JavaScript 中不进行模块注入;使用仅类型(type-only)的模型导入;标题配置为字符串,副标题为独立字符串;节点标签使用标签模型对象;节点 ID 唯一且非空;连线的 sourceId 与 targetId 必须匹配已存在的节点 id 且区分大小写;连线值使用有限正数(避免数字字符串、零、负数、NaN、Infinity、null、undefined 或缺失值);节点与连线的共享样式分别放在 nodeStyle 与 linkStyle 层级;使用受支持的交互事件,避免使用笛卡尔图表的事件(如 pointMouseMove、pointClick、pointRender、selectionComplete);使用高亮而非不受支持的选择(不要使用 selectionMode: 'Point' 或 sankey.select(...));使用受支持的方向 Horizontal 与 Vertical,不添加不受支持的 nodeAlignment 属性;RTL 渲染使用 enableRtl: true,而非反转 source 与 target ID;使用公开配置,不依赖未记载的内部选择器;可执行 HTML 使用真实标签,避免编码或编辑器生成的代码。
参考资料导航
技能按主题组织参考文档:入门与设置(npm 安装、TypeScript 导入、JavaScript CDN 设置、直接初始化、容器创建、节点与连线数据结构、模块注入、首个桑基图、初始化排错);节点配置(SankeyNodeModel、节点 ID、节点标签、单独节点颜色、全局 nodeStyle、边框、宽度与内边距、交互透明度、节点偏移、节点定位、nodeRendering、数据驱动节点颜色、节点校验);连线配置(SankeyLinkModel、来源与目标 ID、连线值、单独连线颜色、全局 linkStyle、Source/Target/Blend 颜色、透明度与弯曲度、平衡流量值、拆分与合并流、多阶段流、连线事件、linkRendering、动态数据转换、连线校验);定制与外观(内置主题、节点与连线颜色、标题与副标题文本及样式、标签排版、水平与垂直方向、背景颜色与图片、图表边框、边距、响应式尺寸、容器装饰、尺寸变化处理、高对比度呈现);功能与交互(提示模块注入、提示格式化与外观、图例模块注入、图例位置与样式、运行时图例可见性、节点与连线高亮、桑基生命周期事件、节点事件、连线事件、渲染事件、RTL 支持、导出校验、打印、原生外部控件);无障碍与进阶主题(无障碍配置、可访问描述、键盘行为、可见焦点、语义化周边 HTML、屏幕阅读器描述、可访问数据表格、移动端布局、RTL 无障碍、运行时数据更新、重复连线聚合、性能优化、尺寸变化优化、内存管理、排错、无障碍测试)。
快速开始要点
技能提供 TypeScript 快速开始示例,包含所需 HTML(带 aria-labelledby 与 aria-describedby 的语义化容器)、所需 CSS(页面容器、卡片、标题、描述与图表容器尺寸)、以及完整的 TypeScript 代码,涵盖导入与注入、节点与连线数据、宽度高度、标题与副标题、方向、nodeStyle、linkStyle、labelSettings、tooltip、legendSettings 与 accessibility 配置。
限制
该技能聚焦于 Syncfusion EJ2 Sankey 组件在 TypeScript 与 JavaScript 中的实现方式,未提供具体收费、价格或其他未被资料覆盖的信息。