其他
数据呈现丨Python绘制桑基图,流量分析不用愁
1、起始流量和结束流量相同,所有主支宽度的总和与所有分出去的分支宽度总和相等,保持能量的平衡;
2、在内部,不同的线条代表了不同的流量分流情况,它的宽度成比例地显示此分支占有的流量;
3、节点不同的宽度代表了特定状态下的流量大小。
关于桑基图的扩展阅读:http://ecowest.org/2013/05/06/sankey-energy/
经济数据
制图代码
生成 nodes 代码
nodes = []
for i in data[0].unique():
dic = {}
dic['name'] = i
nodes.append(dic)
左右滑动查看更多
生成 links 代码
links = []
for i in data.values:
dic = {}
dic['source'] = i[0]
dic['target'] = i[1]
dic['value'] = i[2]
links.append(dic)
左右滑动查看更多
c = (
Sankey()
.add("各地区GDP(亿元)"
,nodes
,links
,linestyle_opt=opts.LineStyleOpts(opacity = 0.4
, curve = 0.5
, color="source"
,type_="dotted"),
label_opts=opts.LabelOpts(position="right",),
)
.set_global_opts(title_opts=opts.TitleOpts(title="全国各地区GDP桑基图"))
)
c.render('Sankey_GDP.html') # 结果可在电脑工作路径中找到
图形展示
图形解读
1、从省市角度看,广东省、江苏省、山东省的线条最宽,表明其2018年的GDP体量最高,对我国的GDP贡献值最大;
2、从区域角度看,华东地区是我国经济最为繁荣的区域,华北、华中、华南地区次之,西南、东北、西北地区较为落后;
3、从各自区域贡献角度看,华东地区各省份呈明显的梯度差异,华南地区则广东省一家独大,其余地区各省市贡献度整体差异不大。
1、上图完整代码:
import pandas as pd
from pyecharts.charts import Page, Sankey
from pyecharts import options as opts
data = pd.read_excel("C:/Users/yeahww/Desktop/GDP.xlsx",header = None,sheet_name = 'Sheet3')
# 生成nodes
nodes = []
for i in data[0].unique():
dic = {}
dic['name'] = i
nodes.append(dic)
# 生成links
links = []
for i in data.values:
dic = {}
dic['source'] = i[0]
dic['target'] = i[1]
dic['value'] = i[2]
links.append(dic)
c = (
Sankey()
.add(
"各地区GDP(亿元)",
nodes,
links,
linestyle_opt=opts.LineStyleOpts(opacity = 0.4, curve = 0.5
, color="source"
,type_="dotted"),
label_opts=opts.LabelOpts(position="right",),
)
.set_global_opts(title_opts=opts.TitleOpts(title="全国各地区GDP桑基图"))
)
c.render('Sankey_GDP.html')
左右滑动查看更多
2、点击阅读原文查看Pyecharts官方绘制桑基图示例
►往期推荐
回复【Python】👉简单有用易上手
回复【学术前沿】👉机器学习丨大数据
回复【数据资源】👉公开数据
回复【可视化】👉你心心念念的数据呈现
回复【老姚专栏】👉老姚趣谈值得一看
►一周热文
数据Seminar
这里是大数据、分析技术与学术研究的三叉路口
欢迎扫描👇二维码添加关注