组件/SankeyChart 桑基图

SankeyChart 桑基图

d3-sankey 布局的流向图:渐变连线、节点值标签、下钻标记与插槽提示框。

Verified自 0.1.0

SankeyChart 桑基图

基础用法

nodes 是节点数组,links节点下标连接(source/targetnodes 的索引)。节点色优先级:node.color > defaultNodeColor > 分类色板按下标轮转。连线默认按来源色→目标色渐变,link-color="gray" 换成整齐的灰。任一节点带 value 时值标签自动开启(showNodeValues 可强制开关)。

流量分发

渐变连线 + tooltip

悬停节点可见 value 与 tooltipData 行;带 isDrillable 的节点是 pointer 光标。

示例加载中...

行内标签与灰连线

inline 标签 + gray 连线

小节点用行内「值 名称」排布更紧凑。

示例加载中...

容错

环形连接会让 d3-sankey 抛错——组件捕获后渲染空态并在控制台给出 dev 警告,不会拖垮宿主页面。

API

SankeyChart Props

属性名类型默认值说明
nodesSankeyNodeData[]{ name, color?, value?, tooltipData?, isDrillable?, childCount? }
linksSankeyLinkData[]{ source, target, value, isDrillable? },下标引用节点。
heightnumber400像素高度。
widthnumber容器实测显式宽度(SSR/测试用)。
nodeWidthnumber8节点条宽。
nodePaddingnumber10同列节点垂直间距。
showNodeValuesboolean | 'auto''auto''auto' 在任一节点有 value 时开启。
nodeLabelLayout'stacked' | 'inline''stacked'值在名称上方 / 同行。
formatValue(v: number) => stringtoLocaleString值格式化。
showTooltipbooleantrue悬停提示框。
defaultNodeColorstring分类色板前的兜底色。
left / rightnumber | string'5%'布局左右留白(px 或百分比)。
linkColor'gradient' | 'gray''gradient'连线填充模式。
linkOpacitynumber0.5渐变连线不透明度。

SankeyChart Events

事件名回调参数说明
node-click(node: SankeyNodeData)点击节点,回传原始数据。
link-click(link: SankeyLinkData)点击连线,回传原始数据。

SankeyChart Slots

插槽名作用域参数说明
tooltip{ params: SankeyTooltipParams }整体替换提示框内容;params.type'node' | 'link'

与 kumo 的差异

  • tooltipFormatter(HTML 字符串 + 手工 XSS 转义)→ tooltip 插槽(VNode)。
  • kumo 遇环形输入直接抛错;这里降级为空渲染 + dev 警告。