首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

可视化 Python绘制桑吉图

桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于电商、材料成分、金融等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。

现如今的可视化软件行业如此发达,制作此类桑基图已非常方便,从最高端的JS库(D3、Echarts、highchart)到主流的数据科学编程工具(R、Python等)亦或者人人都能上手的自助式BI工具(PowerBI、Tableau等)都可以胜任此项工作。

今天我们就用Python制作上面这张桑吉图,简单容易,快速上手!

数据源

下图中为准备好的数据源,每一行为城市对照区域以及相应的旅客人数。

代码书写

这里我用的是Python notebook,开始之前需要先安装可视化包pyecharts,直接命令行输入pip3 install pyecharts 即可。

1、首先导入两个模块,options以及Sankey,其中options负责调节标签、线条之类的,Sankey为桑吉图。

其次输入桑吉图参数nodes,主要格式为{'name':'字段'},表格中A/B列涉及到的所有字段,都要输入进去。

2、接着输入参数links,如下图所示,每一个小参数,即为Excel表中的每一行,source对应着A列,target对应着B列,value对应着C列,以此来完成线条的对应情况。

3、新建一个桑吉图实例C,并赋予参数,完成可视化展示,如下图所示:

其中参数opacity 是设计线条颜色深浅(透明度);curve参数是设计线条弯曲程度的;position参数用于设计图例文字位置,这里放置于图形右侧。

成图如下所示:

从图形中我们可以看出城市上海通往各区域的人数远远多于北京和杭州市,且在东亚地区具有较大优势,东南亚区域三城市人数相当,中亚、西亚、非洲人数相对较少!

根据线条的宽度,数据情况一目了然!可以说桑吉图是一个不错的可视化图形,无繁杂的数据,直观、便捷的一款图形,推荐给大家!如果觉得有用,欢迎关注我,定期分享数据小技巧!

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20191015A09FAT00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券
http://www.vxiaotou.com