软件测试|使用matplotlib绘制多种饼图
简介
Matplotlib是一个强大的数据可视化库,它允许我们创建各种类型的图表,包括饼图。饼图是一种用于显示数据分布的常见图表类型。在本文中,我们将介绍如何使用Matplotlib创建不同类型的饼图,并提供示例代码。
创建标准饼图
首先,让我们创建一个标准的饼图,用于显示不同类别的数据在总体中的占比。以下是示例代码:
import matplotlib.pyplot as plt# 设置字体格式,让中文显示正常
plt.rcParams['font.sans-serif'] = 'FangSong'# 数据
labels = 'A', 'B', 'C', 'D'
sizes = [15, 30, 45, 10]# 创建饼图
plt.figure(figsize=(6, 6))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
plt.axis('equal') # 使饼图呈圆形# 显示图表
plt.title('基础饼图')
plt.show()
上述代码中,我们首先定义了数据标签和对应的大小。然后,我们使用plt.pie()函数创建饼图,设置标签和百分比标签,以及起始角度,最后通过plt.axis('equal')使饼图呈圆形。最后,使用plt.show()显示图表。运行脚本,生成的图像如下图:

创建嵌套饼图
嵌套饼图是一种在一个饼图中嵌套另一个饼图的图表类型,用于显示数据的分层结构。以下是示例代码:
import matplotlib.pyplot as plt# 设置字体格式,让中文显示正常
plt.rcParams['font.sans-serif'] = 'FangSong'# 数据
labels = 'A', 'B', 'C', 'D'
sizes = [15, 30, 45, 10]
inner_labels = 'X', 'Y'
inner_sizes = [60, 40]# 创建饼图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140)
ax.pie(inner_sizes, radius=0.6, labels=inner_labels, autopct='%1.1f%%', startangle=140)# 添加圆圈,使其呈现为嵌套饼图
centre_circle = plt.Circle((0, 0), 0.4, color='black', fc='white')
fig.gca().add_artist(centre_circle)# 显示图表
plt.axis('equal')
plt.title('嵌套饼图')
plt.show()
这段代码创建了一个嵌套饼图,首先绘制外部饼图,然后在内部绘制另一个饼图。通过添加黑色的圆圈来实现嵌套效果。运行代码,生成的饼图如下所示:

创建环形饼图
环形饼图是一种与标准饼图相似的图表,但具有空心的中心,用于强调数据的分布。以下是示例代码:
import matplotlib.pyplot as plt# 设置字体格式,让中文显示正常
plt.rcParams['font.sans-serif'] = 'FangSong'# 数据
labels = 'A', 'B', 'C', 'D'
sizes = [15, 30, 45, 10]# 创建环形饼图
plt.figure(figsize=(6, 6))
plt.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=140, wedgeprops=dict(width=0.4))
plt.axis('equal') # 使饼图呈圆形# 显示图表
plt.title('环形饼图')
plt.show()
在上面的代码中,我们使用wedgeprops参数设置环形饼图的宽度,然后通过plt.axis('equal')使饼图呈圆形。运行代码,绘制的饼图如下所示:

总结
本文主要介绍了使用matplotlib绘制多种饼图的方法,饼图在展示数据分布,尤其是不同数据占比时有较大优势,希望本文对大家能有所帮助。
最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:
这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你!

相关文章:
软件测试|使用matplotlib绘制多种饼图
简介 Matplotlib是一个强大的数据可视化库,它允许我们创建各种类型的图表,包括饼图。饼图是一种用于显示数据分布的常见图表类型。在本文中,我们将介绍如何使用Matplotlib创建不同类型的饼图,并提供示例代码。 创建标准饼图 首…...
vue3-响应式基础之ref
声明响应式状态 ref() 在组合式 API 中,推荐使用 ref() 函数来声明响应式状态: ref() 接收参数,并将其包裹在一个带有 .value 属性的 ref 对象中返回: import { ref } from vue const count ref(0)console.log(count) // { va…...
华为网络设备 通过路由器子接口 Dot1q终结子接口实现跨VLAN通信
(二层交换机直接跳过三层交换价接入路由器时才使用该配置。推荐使用三层交换机建立VLANIF配置更简洁明了。如果VLAN较少可直接配置;路由器接口,一个物理接口一个VLAN) S1配置 vlan batch 2 to 3interface GigabitEthernet0/0/1port link-type trunkpor…...
代码随想录算法训练48 | 动态规划part09
今天就是打家劫舍的一天,这个系列不算难,大家可以一口气拿下。 198.打家劫舍 视频讲解:动态规划,偷不偷这个房间呢?| LeetCode:198.打家劫舍_哔哩哔哩_bilibili 代码随想录 213.打家劫舍II 视频讲解&am…...
2024最新适用于 Windows 、Mac 的最佳屏幕录制软件
屏幕录制软件可以帮助我们录制 PC 和MacBook的实时屏幕视频。如果您想为 优酷录制视频,或者您正在为您的公司制作基于视频的项目,并且需要捕获屏幕的实时视频录制,那么我们在此列出了 一 款适合您的 Windows 、Mac的 2024 年最佳屏幕录制软件…...
【Docker】概述与安装
🥳🥳Welcome Huihuis Code World ! !🥳🥳 接下来看看由辉辉所写的关于Docker的相关操作吧 目录 🥳🥳Welcome Huihuis Code World ! !🥳🥳 一. Docker的概述 1.Docker为什么出现 2…...
衡水学院新人真题百练2022(1-20)修订版
1 重要的话说三遍 分数 5 作者 陈越 单位 浙江大学 这道超级简单的题目没有任何输入。 你只需要把这句很重要的话 —— “I’m gonna WIN!”——连续输出三遍就可以了。 注意每遍占一行,除了每行的回车不能有任何多余字符。 #include<stdio.h> int…...
远程调用(OpenFeign)
远程调用 何为远程调用?例如:单体服务时,A模块的功能涉及到引用B模块的功能,那我们需要在A模块中注入B模块的相关服务类并调用其方法;那么同样的逻辑在微服务体系下,就会变成了A服务的功能需要调用B服务的功能,这就形成了服务间调用,也称为远程调用。 目前来说,微服务…...
智能光栅光片显微成像技术的LabVIEW解决方案
智能光栅光片显微成像技术的LabVIEW解决方案 在生物医学研究中,高效的成像技术对于捕捉细胞内罕见和复杂事件至关重要。智能光栅光片显微技术(smartLLSM)的出现,代表了LabVIEW软件在高端成像领域的革命性应用,这项技术…...
手撕乘积(**Multiplication** **Product**): 穷举和图示(2) 点积的几何意义
手撕乘积(Multiplication & Product): 穷举和图示(2) 点积的几何意义 点乘 x 3 y 5 xNda np.arange(x) >>> array([0, 1, 2]) x2Nda xNda*21 >>> array([1, 3, 5]) yNda np.arange(1, y) >>> array([1, 2, 3, 4]) xyNda np.meshgrid(xN…...
postman环境变量全局变量设置
postman环境变量、全局变量设置 在公司中,一般会存在开发环境、测试环境、线上环境等,如果需要在不 同的环境下切换做接口测试,显然我们需要把所有接口的域名进行修改,如果接 口测试用例较多,那么修改会非常费力&…...
Linux 内核线程
文章目录 一、内核线程二、内核线程与普通进程的异同三、内核线程创建3.1 kernel_thread3.2 kthread_create 四、内核线程的退出四、示例代码参考资料 一、内核线程 内核线程就是内核的分身,一个分身可以处理一件特定事情。Linux内核使用内核线程来将内核分成几个功…...
Golang学习之路一七fmt的使用
Golang学习之路一七fmt的使用 格式化参数列表 格式含义%%一个%字面量%b一个二进制整数值(基数为 2),或者是一个(高级的)用科学计数法表示的指数为 2 的浮点数%c字符型。可以把输入的数字按照 ASCII 码相应转换为对应的字符%d一个十进制数值(基数为 10)%e以科学记数…...
windows使用redis-安装和配置
windows使用redis 安装和配置 下载安装方式一-使用压缩包安装解压到指定的文件Redis安装为Windows服务安装成功 方式二-MSI安装包安装完成 Redis配置远程访问1.修改配置文件redis.windows.conf2.修改完redis配置文件,必须重启redis 下载 先下载Redis for windows 的…...
Kafka系列(一)
内容 该系列主要是复习期间,通过浏览资料记录的一些笔记和重点,用于日常学习和学习后的总结。 组件概念 broker 一个Kafka的集群通常由多个broker组成,这样才能实现负载均衡、以及容错 broker是无状态(Sateless)的…...
Kotlin中的委托
在Kotlin中,委托是一种强大的设计模式,它允许一个类将其一些职责委托给另一个类。这种机制通过关键字by来实现。委托有助于代码的重用,降低耦合性,并提供更清晰的类设计。在Kotlin中,有两种主要类型的委托:…...
VUE2/3:element ui table表格的显隐列(若依框架)
若依框架自带一个组件,封装了关于表格,展示和隐藏表格列的功能; 使用效果就是这样的,在表格上面,三个框,从左到右分别是隐藏上面搜索,刷新列表,和显隐列的功能; 一、下面…...
PTA-7-4 堆排序
代码如下: #include<iostream> using namespace std; void change(int arr[], int n, int i); int main() {int n,i,end,arr[1000];cin >> n;for (i 0; i < n; i){cin >> arr[i];}//进行一次排序,把最大值放到顶端for (i n/2-1; i > 0; i--){change…...
uniapp滑动页面切换和下拉刷新,触底加载更多(swiper + scroll-view)
因为官方文档乱七八糟的,所以自己来总结下 需求: 常见的上方tag标签切换,下方是页面,上面点击切换,下面页面也切换,下方列表有下拉刷新,触底加载更多 因为这两个组件都是固定高度的,…...
git 删除 submodule 子模块的步骤
实验有效,这里删除了两个 submodule。 1, 执行删除 submodule mkdir tmp1 && cd tmp1 && git clone --recursive ssh://gitaaa.bbb.ccc.git \ && cd ixsolver && git checkout -b abranch_01 \ && git submodule deini…...
自动化测试新范式:OpenClaw+Qwen3.5-9B生成测试用例
自动化测试新范式:OpenClawQwen3.5-9B生成测试用例 1. 为什么需要AI生成测试用例 在传统测试流程中,编写测试用例往往是最耗时且容易出错的环节。测试工程师需要反复阅读需求文档,手动设计各种边界条件和异常场景。这个过程不仅效率低下&am…...
人工智能毕设新颖的课题帮助
1 引言 毕业设计是大家学习生涯的最重要的里程碑,它不仅是对四年所学知识的综合运用,更是展示个人技术能力和创新思维的重要过程。选择一个合适的毕业设计题目至关重要,它应该既能体现你的专业能力,又能满足实际应用需求ÿ…...
墨语灵犀企业级Agent开发:构建自主任务规划与执行系统
墨语灵犀企业级Agent开发:构建自主任务规划与执行系统 最近和几个做企业服务的朋友聊天,他们都在头疼同一个问题:公司里那些重复、繁琐但又需要点“脑子”的分析和报告工作,到底怎么自动化?招人成本高,用传…...
如何3倍提升代码分析效率?这款工具让复杂项目一目了然
如何3倍提升代码分析效率?这款工具让复杂项目一目了然 【免费下载链接】codequery A code-understanding, code-browsing or code-search tool. This is a tool to index, then query or search C, C, Java, Python, Ruby, Go and Javascript source code. It build…...
Luma3DS从源码编译终极指南:开发者环境搭建和完整构建流程详解
Luma3DS从源码编译终极指南:开发者环境搭建和完整构建流程详解 【免费下载链接】Luma3DS Noob-proof (N)3DS "Custom Firmware" 项目地址: https://gitcode.com/gh_mirrors/lu/Luma3DS Luma3DS是Nintendo 3DS家族设备的"傻瓜式"自定义固…...
OpenClaw技能扩展实战:用Qwen3-32B镜像开发自定义文件处理器
OpenClaw技能扩展实战:用Qwen3-32B镜像开发自定义文件处理器 1. 为什么需要自定义文件处理技能 上周我遇到了一个棘手的问题——需要从200多份PDF报告中提取关键数据并生成摘要。手动操作不仅耗时,还容易出错。这让我意识到OpenClaw的默认技能库虽然丰…...
Qwen3.5-4B-Claude-Opus-GGUF入门:Qwen3.5-4B与Claude-4.6能力对齐评估方法
Qwen3.5-4B-Claude-Opus-GGUF入门:Qwen3.5-4B与Claude-4.6能力对齐评估方法 1. 模型概述 Qwen3.5-4B-Claude-4.6-Opus-Reasoning-Distilled-GGUF是一个基于Qwen3.5-4B的推理蒸馏模型,重点强化了结构化分析、分步骤回答、代码与逻辑类问题的处理能力。该…...
信息学奥赛必备:用C++手把手教你实现圆的计算(附OpenJudge/洛谷真题解析)
信息学奥赛必备:用C手把手教你实现圆的计算(附OpenJudge/洛谷真题解析) 在信息学竞赛的入门阶段,几何计算往往是选手们遇到的第一个"拦路虎"。其中,圆的相关计算因其数学公式的简洁性和编程实现的多样性&…...
华为ModelEngine赋能HR:打造智能面试分析Agent的实战指南
1. 为什么HR需要智能面试分析Agent? 招聘工作对任何企业来说都是核心环节,但传统面试流程存在几个明显痛点:简历筛选耗时长、面试问题缺乏针对性、评估标准不统一、面试记录整理繁琐。这些问题直接影响了招聘效率和人才匹配度。 我去年帮一家…...
ESP32开发入门:Vscode+PlatformIO环境搭建与工程配置全攻略(2024最新版)
ESP32开发实战:VscodePlatformIO高效开发环境配置指南 在物联网设备开发领域,ESP32凭借其出色的性价比和丰富的功能接口,已成为开发者首选的微控制器之一。但对于刚接触嵌入式开发的工程师来说,如何快速搭建一个高效、稳定的开发环…...


