这张图是不是十分的漂亮呢?今天偶然间看到一张十分炫酷的图,深深地被它妖艳炫酷的的外表所迷惑,查了许多资料之后,得知它叫“桑基图”。古人云:“桑吉桑吉,高贵美丽”,果然美丽啊,本人业余时间利用Python绘制了一个具体的实例。

1.桑基图的概念

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

2.基本特征

桑基图最明显的特征就是,始末端的分支宽度总和相等,即所有主支宽度的总和应与所有分出去的分支宽度的总和相等,保持能量的平衡。

3.制作工具以及数据准备

本文主要采用Python中的pandas库和 pyecharts库来作最基本的桑基图,数据的准备如下图所示:

4.代码

这里不再啰嗦,直接贴代码

import pandas as pd

from pyecharts.charts import Page,Sankey

from pyecharts import options as opts

# 读取csv文件

data = pd.read_csv(r'/home/apollo/Desktop/sample.csv',encoding = 'utf-8',header=None)

# print(data)

# 生成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)

# 生成可视化结果

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="2019年生活支出一览"))

)

# 输出html可视化结果

c.render('result.html')

最后生成HTML格式的文件,用浏览器打开即可

5.结果展示

喜欢的朋友麻烦一键三连哦,有不当之处请随时打扰,有扰必回。

python制作桑基图_Python制作桑基图相关推荐

  1. python画k线图_python画k线图

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! import datetime import pandas_datareader ...

  2. python 鱼骨图_python面向对象编程,鱼骨图分析法

    一.面向对象编程 ​ 面向过程编程,核心是编程二字,过程指的是解决问题的步骤,即先干什么.后干什么.再干什么.然后干什么-- 与工厂的工艺流程差不多,前后都有影响 优点:复杂的问题流程化,进而简单化, ...

  3. python常规异常的基类_Python警告的基类警告类是____。

    [判断题]pickle使用pickle.dump(data,file)读取数据. [单选题]下列是Python断言语句失败的错误类型是? [单选题]立体被平面截切所产生的表面交线称为( ). [判断题 ...

  4. python画出的图_Python 画出来六维图

    来自维基百科 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 不过,我们仍然可以绘制出多维空间,今天就来用 Python 的 p ...

  5. python做k线图_python做k线图(15分钟k线的意义)

    北大荒... 大家对图中的巨量高开涨停是什么理解的... 庄家最后的出 日k线图又称阴阳烛,最初是日本米商用来表示米价涨跌状况的工具,后来引入股市,并逐渐风行于东南亚地区.k线图以其直观.立体感强的特 ...

  6. python 六维图_Python 画出来六维图

    来自维基百科 我们的大脑通常最多能感知三维空间,超过三维就很难想象了.尽管是三维,理解起来也很费劲,所以大多数情况下都使用二维平面. 不过,我们仍然可以绘制出空间,今天就来用 Python 的 plo ...

  7. python怎样画动态文字_Python制作动态字符图的实例

    这次我们拿小龙猫来做演示 这里就不必多说了,也就导入几个用到的包: SOURCE_PATH:这个是GIF的路径OUTPUT_PATH:这个是每一帧的存放路径FRAMES_PATH:这个也是每一帧的存放 ...

  8. python制作雷达图_python制作雷达图

    雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法,雷达图通常用于综合分析多个指标,具有完整,清晰和直观的优点. 下面以实际例子给大家讲解一下雷达图的应用场 ...

  9. python制作折线图_Python 绘制可视化折线图

    1. 用 Numpy ndarray 作为数据传入 ply 1 2 3 4 5 6 7 8 9 10 11 import numpy as np import matplotlib as mpl im ...

最新文章

  1. postgresql支持唯一约束吗_PostgreSQL:2列联合的唯一约束
  2. 【收藏】linux下用命令方式创建及管理kvm虚拟机
  3. 欢乐暑假-高校俱乐部暑期线上编程竞赛奖励机制
  4. qt 关闭窗口的槽函数_勇哥的VC++应用框架学习之QT(1) 信号槽、按钮控件、opencv读取显示图片...
  5. Docker和容器如何改善eZ的软件开发
  6. Nginx location
  7. leetcode371
  8. Strtus2标签s:url
  9. WayOs内置智能重启:自动计算UTC时间为本地时间,可以调整为几时重启
  10. 【09-06】数据结构学习笔记-图篇00
  11. python爬取拉勾网职位信息_Python爬虫:拉勾网Python的职位信息爬取
  12. Word Clock数字时钟动态屏保,让你的电脑锁屏瞬间科技感十足!
  13. python — pip 下载速度慢解决方法(含Anaconda、spyder 下载包的方法)
  14. Processor ARM7TDMI/ARM920T raised an exception.Cause:Undefined instruction问题的多个解决方法
  15. 微信、企业微信分享按钮隐藏问题
  16. NC如何在打印模板中添加打印审批流记录
  17. 只安装XCode’s Com­mand line tools不安装XCode
  18. 红孩儿编辑器的开发 1 字体库的生成过程
  19. 科目三-上海松江小昆山
  20. 算法系列讲解之:社交网络之共同好友模型讲解

热门文章

  1. C++_泛型编程与标准库(二)
  2. 极光推送后台php接口,极光推送Jpush(v2)接口 服务端PHP版本的REST API推送类
  3. MATLAB编写ode文件,MATLABODE45问题M文件为br/functiondq 爱问知识人
  4. 计算机网络sdn,刘少伟:SDN重新定义网络
  5. java单点登录强制下线_实现单点登录并强制对方下线
  6. java 遍历list 性能_java list三种遍历方法性能比較
  7. 如何获得images.xcassets 中图片的路径?
  8. java编程石头剪刀布图片_石头、剪刀、布!10分钟带你打开深度学习大门,代码已开源...
  9. linux按时间排序并查看发现,linux下扫描文件并按时间排序
  10. 【PHPWord】图片