python绘制桑基图(sankey diagram)

博主因工作需要制作桑基图,对比了R语言、matplotlib和pyecharts等工具,但都不满意。于是决定自己用Python结合JavaScript的ECharts包创建一个脚本,实现数据处理、生成HTML文件以及交互式桑基图展示。该脚本只需几行代码就能将数据转化为美观且交互的桑基图,详细步骤包括数据处理、创建SanKey对象、保存到HTML文件。源代码已上传至GitHub。

背景

最近因为工作需要,需要画一些漏斗图、成交路径的图之类的,然后我就想到了桑基图(sankey diagram)。这个图现在绘制很简单,可以有以下几个方法:

1. 使用R语言画,比如R语言的networkD3、plotly包,可以画非常漂亮的sankey diagram图,使用起来也很方便,但是我不想用,因为我不想从python到R相互转化,变量之间的传递太麻烦了,虽然现在的jupyter notebook可以配置,让R和python共享变量。但是我个人感觉不够优雅。
参考链接有:https://www.r-graph-gallery.com/321-introduction-to-interactive-sankey-diagram-2.html


2. python的matplotlib也可以画,但是matplotlib画的图很难交互,做静态展示还是非常可以的,但是交互起来非常麻烦,尤其是涉及到sankey diagram这样的,要展示的指标非常多。所以说使用matplotlib就不方便。我也选择放弃。
参考链接有:https://matplotlib.org/stable/api/sankey_api.html

3. python的pyecharts、plotly包也可以画。但是plotly的图总是感觉不够中国化,不够本土,然后就没有选择plotly。pyecharts图也还行,就是学习起来感觉有点麻烦,要配置的东西太多,每次要导入几行代码,也不够优雅,更加致命的是pyecharts画出来的图没有官方的echarts图好看。
参考链接有:

评论 15
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yuanzhoulvpi

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值