千家信息网

如何实现Python数据可视化Pyecharts库实现桑葚图效果

发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,这篇文章主要讲解了"如何实现Python数据可视化Pyecharts库实现桑葚图效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现Python
千家信息网最后更新 2024年11月27日如何实现Python数据可视化Pyecharts库实现桑葚图效果

这篇文章主要讲解了"如何实现Python数据可视化Pyecharts库实现桑葚图效果",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"如何实现Python数据可视化Pyecharts库实现桑葚图效果"吧!

目录
  • 基本思路我总结大概有三步:

    • 1. 先申明使用sankey

    • 2. 使用add 添加对sankey图的配置信息

    • 3. 最后render生成html文件展示

首先介绍一下什么是桑葚图?

桑基图(Sankey diagram),即桑基能量分流图,也叫桑基能量平衡图。

它是一种特定类型的流程图,图中延伸的分支的宽度对应数据流量的大小,通常应用于能源、材料成分、金融等数据的可视化分析。

因1898年Matthew Henry Phineas Riall Sankey绘制的"蒸汽机的能源效率图"而闻名,此后便以其名字命名为"桑基图"。

抓住桑葚图的核心定义,是主要用语表现一个数据流的过程。其实,我们熟悉的Matplotlib中也可以画出桑葚图,可是看起来是不是有那么一点点丑? 如下所示:

本篇使用另外一个常用的可视化库pyecharts来画图。

这里需要强调一下,pyecharts 分为v0.5.x 和 v1 两个大版本,并且两个版本是不兼容的。v 0.5.x 支持python2.7 和 3.4+ ,而v1 开始仅支持python 3.6+ ,在官方也分为两个不同的文档。

在网上对于v1 的资料和学习例子也非常多,本文就为还在使用v 0.5.x版本的同学,提供帮助。本篇之后的例子,使用v 0.5.x版本。官方文档

首先使用熟悉的pip进行安装

pip install pyecharts

然后我们可以对照着官方文档中的API介绍来学习,需要引入 Sankey。

核心参数不同,主要是对桑葚图的一些展示的配置。

基本思路我总结大概有三步:

1. 先申明使用sankey

sankey = Sankey("桑基图示例", width=1200, height=600)

2. 使用add 添加对sankey图的配置信息

sankey.add(    "sankey",    nodes=j["nodes"],    links=j["links"],    line_opacity=0.2,    line_curve=0.5,    line_color="source",    is_label_show=True,    label_pos="right",)

这里需要注意,nodes和links是必须参数,相当于桑葚图中的结点和连接的边。需要传入一个List数据,内嵌字典数据格式,如下所示。这里的name、source、target和value都是固定的。

nodes = [    {'name': 'category1'}, {'name': 'category2'}, {'name': 'category3'},    {'name': 'category4'}, {'name': 'category5'}, {'name': 'category6'},] links = [    {'source': 'category1', 'target': 'category2', 'value': 10},    {'source': 'category2', 'target': 'category3', 'value': 15},    {'source': 'category3', 'target': 'category4', 'value': 20},    {'source': 'category5', 'target': 'category6', 'value': 25}]

3. 最后render生成html文件展示

sankey.render()

最后给大家分享一个小例子:

def sankey_analysis():    nodes = [{'name':'Cluster 1'}, {'name':'Cluster 2'},{'name':'Cluster 3'},              {'name':'Young'},{'name':'Medium'},{'name':'Elder'}]         result = np.array([                   [130,151,188],                   [735,462,670],                   [711,625,881]])     targets = ['Young', 'Medium', 'Elder']        links = []     for i in range(0,3):        for j in range(0,3):            sub_dict ={}            sub_dict['source'] = 'Cluster '+str(i+1)            sub_dict['target'] = targets[j]            sub_dict['value'] = result[i,j]            links.append(sub_dict)                pic = (Sankey(name, width=1200, height=600).add('', nodes, links,    sankey_node_width=80,    sankey_node_gap=5,     line_opacity=0.7,    line_curve=0.5,    line_color='source',    is_label_show=True,    is_random = True,                                                  label_text_size=14,                       label_pos="inside"))        pic.render('sankey.html')

感谢各位的阅读,以上就是"如何实现Python数据可视化Pyecharts库实现桑葚图效果"的内容了,经过本文的学习后,相信大家对如何实现Python数据可视化Pyecharts库实现桑葚图效果这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!

0