用途:创建交互式桑基图,用于可视化流量、转移与类别之间的关系,适用于预算流向、能量转移、用户旅程和数据管道等场景。
主要能力:支持多种数据输入方式,包括字典(from_dict)、CSV 文件(from_csv)、pandas DataFrame(from_dataframe)以及逐条添加流量(add_flow)。输出为交互式图表,包含悬停提示。支持节点定制(颜色、标签、位置)与连线样式(颜色、透明度、标签),可自动配色或使用内置色图(如 Pastel1、Set1、viridis 等),也可自定义十六进制或命名颜色。链式调用风格,所有样式方法返回 self。
使用方式:初始化 SankeyCreator 后加载数据,设置标题、节点颜色、连线颜色与布局方向,调用 generate() 生成,再用 save_html() 保存交互式 HTML,或用 save_image() 导出 PNG/SVG;也可通过 get_figure() 获取 Plotly 图对象进一步定制。支持命令行调用:python sankey_creator.py --input flows.csv --source from --target to --value amount --output flow.html,并提供 --title、--colormap、--link-opacity、--orientation、--width、--height 等参数。
依赖:plotly>=5.15.0、pandas>=2.0.0、kaleido>=0.2.0。
限制:PNG/SVG 静态图片导出需要 kaleido 包;节点过多的复杂图可能难以阅读;节点位置为自动计算,手动控制有限;连线颜色只能统一设置或按来源/目标节点着色。