pyecharts-4-绘制桑葚图
本文中介绍的是如何利用Pyecharts
绘制桑葚图,包含:
- 什么是桑葚图
- 官网demo,理解数据含义
- 模拟数据及生成对应的数据
- 实际效果展示
桑葚图
桑基图是可视化图表的一种,一般用来表示数据流量。
桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,比较适用于用户流量等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。
桑基图主要由边、流量和支点组成,其中边代表了流动的数据,流量代表了流动数据的具体数值,节点代表了不同分类。边的宽度与流量成比例地显示,边越宽,数值越大。
官网demo
下面的数据是官网提供demo,通过观察可以找到桑葚图数据的特点:
nodes
代表的是所有节点的名称links
代表的是每两个节点的数据流向和具体数值,soure
可以看做是父类的节点,target
代表的是子类的节点,value
代表的是具体数据- 上面的两个数据要组成json格式
1 | from pyecharts import options as opts |
模拟数据
原始数据
下面的数据是随意模拟的,主要是了解如何生成绘制桑葚图需要的数据
转成父类+子类数据
- 先从总费这个父类用到服装等4个子类
- 再从服装(服装为例)这个类从自己的3个子类
最终得到右侧的父类+子类+数据
这样的完整数据
json数据
Nodes数据
节点去重的时候可能子类节点+父类节点还要再次去重
1 | # 节点去重 |
links数据
1 | links_list = [] |
最终完整数据
通过上面的数据处理得到了生成桑葚图的完整数据
1 | nodes_list = [ |