软件测试|使用matplotlib绘制桑基图

在这里插入图片描述

前言

之前我们介绍了如何使用pyecharts绘制桑基图,本文我们将介绍如何使用另外一个Python数据可视化工具matplotlib来绘制桑基图。

环境准备

首先,我们要先在我们的电脑中安装matplotlib库,安装命令如下:

pip install matplotlib

安装完成之后,我们需要导入绘制桑基图的类,如下:

import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey

绘制桑基图

导入完类之后,下面我们来绘制桑基图,我们将使用一个虚拟的例子来绘制桑基图,以一个商店的不同产品的销售情况来绘制桑基图,代码如下:

import matplotlib.pyplot as plt
from matplotlib.sankey import Sankey

# 中文显示
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

# 数据
categories = ['日用品', '电器', '衣物', '书籍', '玩具']
flows = [120, 80, 30, 40, 50]

可以按照以下步骤使用Python中的matplotlib绘制桑基图: 1. 安装matplotlib库:在命令行中输入 `pip install matplotlib` 安装matplotlib库。 2. 准备数据:准备起点和终点数据,并将其存储在DataFrame中。 3. 导入matplotlib库:在Python脚本中导入matplotlib库。 4. 绘制桑基图使用matplotlib库中的 `sankey()` 函数绘制桑基图。需要传入起点和终点数据。 5. 自定义桑基图:可以使用不同的颜色、标签和注释等自定义桑基图。可以通过 `patche` 对象来访问桑基图的不同部分,并进行自定义。 以下是一个使用Python中的matplotlib绘制桑基图的示例代码: ```python import matplotlib.pyplot as plt from matplotlib.sankey import Sankey import pandas as pd # 准备数据 df = pd.DataFrame({'start': ['A', 'A', 'B', 'B'], 'end': ['B', 'C', 'C', 'D'], 'value': [20, 30, 40, 10]}) # 绘制桑基图 fig = plt.figure() ax = fig.add_subplot(1, 1, 1, xticks=[], yticks=[], title="Sankey Diagram") sankey = Sankey(ax=ax, scale=0.01, offset=0.2, head_angle=180) sankey.add(flows=df['value'], labels=df['start'], orientations=[0, 1, -1, 0], patchlabel="Flow", facecolor="#37c959") diagrams = sankey.finish() # 自定义桑基图 for i, diagram in enumerate(diagrams): for text in diagram.texts: text.set_fontsize(12) for patch in diagram.patches: patch.set_fc('#37c959') patch.set_ec('none') patch._label.set_fontsize(12) for idx in diagram.parts: if isinstance(idx, tuple): patch = sankey.patches[idx] patch.set_hatch('/') patch.set_fc('#8c8c8c') patch.set_ec('none') sankey.patch.set_fc('none') plt.show() ``` 这个示例代码绘制了一个简单的桑基图,你可以根据自己的需要进行修改和调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值