其他
好享学丨双十二还在买买买吗?白送你一份桑基图制作指南,让你满血回本!(附送详细源码)
The following article is from Python大数据分析 Author 朱卫军
好享学是高下制图推出的关于数据可视化经验分享栏目,我们将定期与您分享各界优秀人士的制图经验,一同学习。
由于工作的需要,经常需要进行可视化展示,除了一些常用的BI工具,我也会使用python对数据进行可视化。
python的第三方可视化库有很多,比如matplotlib、seaborn、plotly、bokeh、pyecharts等等。
这次就来说一说,如何用python的第三方库-pyecharts制作交互式桑基图。
示例
桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,比较适用于用户流量等数据的可视化分析。因1898年Matthew Henry Phineas Riall Sankey绘制的“蒸汽机的能源效率图”而闻名,此后便以其名字命名为“桑基图”。
可交互
简洁的 API 设计,使用如丝滑般流畅,支持链式调用 囊括了 30+ 种常见图表,应有尽有 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab 可轻松集成至 Flask,Django 等主流 Web 框架 高度灵活的配置项,可轻松搭配出精美的图表 详细的文档和示例,帮助开发者更快的上手项目 多达 400+ 地图文件以及原生的百度地图,为地理数据可视化提供强有力的支持
pip install pyecharts
from pyecharts.charts import Bar
bar = Bar()
bar.add_xaxis(["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"])
bar.add_yaxis("商家A", [5, 20, 36, 10, 75, 90])
# render 会生成本地 HTML 文件,默认会在当前目录生成 render.html 文件
# 也可以传入路径参数,如 bar.render("mycharts.html")
bar.render()
# 导入相关库
import pandas as pd
from pyecharts.charts import Page, Sankey
from pyecharts import options as opts
# 读取csv文件
data = pd.read_csv(r'sample.csv',encoding='gbk',header=None)
# 生成nodes
nodes = []
nodes.append({'name':'总支出'})
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)
# pyecharts 所有方法均支持链式调用。
c = (
Sankey()
.add(
"费用/元",
nodes,
links,
linestyle_opt=opts.LineStyleOpts(opacity=0.2, curve=0.5, color="source",type_="dotted"),
label_opts=opts.LabelOpts(position="right",),
)
.set_global_opts(title_opts=opts.TitleOpts(title="我的生活支出一览"))
)
# 输出html可视化结果
c.render('result.html')
END
还在为如何制作精美图表苦恼头秃么?全新推出高下制图app,不断更新的制图模板,随心更改样式,轻松一键制图。现在积极参与高下制图内测,更有机会获得正式版会员,享受轻松作图哦。更多详情请扫码进群了解。
欢迎扫描👇二维码添加关注
往期推荐