软件测试|使用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绘制多种饼图的方法,饼图在展示数据分布,尤其是不同数据占比时有较大优势,希望本文对大家能有所帮助。

最后感谢每一个认真阅读我文章的人,礼尚往来总是要有的,虽然不是什么很值钱的东西,如果你用得到的话可以直接拿走:

这些资料,对于【软件测试】的朋友来说应该是最全面最完整的备战仓库,这个仓库也陪伴上万个测试工程师们走过最艰难的路程,希望也能帮助到你! 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/624872.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux进程【2】进程地址空间(+页表详解哦)

fork 引言(程序地址空间)进程地址空间进程地址空间mm_struct 虚拟地址到物理地址的转化总结 引言(程序地址空间) 在之前的学习过程中,我们认识了内存与地址,并且了解了在程序地址空间中的基本分区&#xf…

2000年第五次人口普查数据,shp/excel格式均有,划分年龄段、性别占比等字段

基本信息. 数据名称: 第五次人口普查数据 数据格式: Shp、excel 数据时间: 2000年 数据几何类型: 面 数据坐标系: WGS84坐标系 数据来源:第五次人口普查数据 数据字段: 序号字段名称字段说明1a2000_zrks2000年_常住人口(人&…

Eureka 本机集群实现

距离上次发布博客已经一年多了,主要就是因为考研,没时间学习技术的内容,现在有时间继续完成关于代码方面的心得,希望跟大家分享。 今天在做一个 Eureka 的集群实现,我是在本电脑上跑的,感觉这个挺有意思&a…

Linux的网络文件共享服务之FTP服务

一.存储类型 1.1 存储类型分为三种 直连式存储:Direct-Attached Storage,简称DAS 存储区域网络:Storage Area Network,简称SAN(可以使用空间,管理也是你来管理) 网络附加存储:Net…

Sqoop作业调度:自动化数据传输任务

自动化数据传输任务是大数据处理中的一个重要方面,可以定期执行Sqoop作业,确保数据在不同系统之间的同步。本文将深入探讨如何使用Sqoop作业调度来自动化数据传输任务,并提供详细的示例代码和全面的内容,以帮助大家更好地理解和应…

二叉树简介

二叉树 二叉树是每个节点最多有两个子树的树结构,通常子树被称作“左子树”和“右子树”。 二叉树的遍历 二叉树的遍历主要有三种方式:前序遍历、中序遍历和后序遍历。 前序遍历:访问根节点 --> 遍历左子树 --> 遍历右子树中序遍历&…

三、MyBatis 多表映射

本章概要 多表映射概念对一映射对多映射多表映射总结 多表映射优化多表映射总结 3.1 多表映射概念 多表查询结果映射思路 开发中有很多** 多表查询**需求,这种情况如何让进行处理? MyBatis 思想是:数据库不可能永远是你所想或所需的那个样…

用LED数码管显示计数器T0的计数值

#include<reg51.h> //包含51单片机寄存器定义的头文件 sbit SP3^2 ; //将S位定义为P3.2引脚 unsigned char Tab[ ]{0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; //段码表 unsigned char x; /************************************************************…

Arduino开发实例-手指心率传感器模块

手指心率传感器模块 文章目录 手指心率传感器模块1、手指心率传感器介绍2、硬件准备及接线3、代码实现1、手指心率传感器介绍 本次使用的心率传感器模块是为教育和娱乐目的而设计的,通过手指检测心血管脉搏波。 它使用 PPG (HRM-2511E) 探头进行数据传输。 该传感器使用红外线…

Mysql中设置只允许指定ip能连接访问(可视化工具的方式)

场景 Mysql中怎样设置指定ip远程访问连接&#xff1a; Mysql中怎样设置指定ip远程访问连接_navicat for mysql 设置只有某个ip可以远程链接-CSDN博客 前面设置root账户指定ip能连接访问是通过命令行的方式&#xff0c;如果通过可视化工具比如Navicat来实现。 注&#xff1a…

element里面的confirm弹窗,提示message换行

element里面的confirm弹窗&#xff0c;提示message换行 confirm弹窗的message换行 直接添加dangerouslyUseHTMLString属性即可 let str 我是第一行提示&#xff01;\n 第二行提示&#xff01;\n 第三行提示; // 处理str let mesg str.replace(/\n/g, <br />); thi…

案例130:基于微信小程序的综合文化信息管理系统

文末获取源码 开发语言&#xff1a;Java 框架&#xff1a;SSM JDK版本&#xff1a;JDK1.8 数据库&#xff1a;mysql 5.7 开发软件&#xff1a;eclipse/myeclipse/idea Maven包&#xff1a;Maven3.5.4 小程序框架&#xff1a;uniapp 小程序开发软件&#xff1a;HBuilder X 小程序…

七大排序(含快排+归并的递归版和非递归版)

文章目录 前言一、冒泡排序二、选择排序三、插入排序四、希尔排序五、堆排序六、快速排序快排的递归方式快排的非递归方式 七、归并排序自上而下的递归自下而上的迭代 总结 前言 排序&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的…

代码随想录算法训练营第20天 | 654.最大二叉树 + 617.合并二叉树 + 700.二叉搜索树中的搜索 + 98.验证二叉搜索树

今日任务 654.最大二叉树 - Medium617.合并二叉树 - Easy700.二叉搜索树中的搜索 - Easy98.验证二叉搜索树 - Medium 654.最大二叉树 - Medium 题目链接&#xff1a;. - 力扣&#xff08;LeetCode&#xff09; 给定一个不重复的整数数组 nums 。 最大二叉树 可以用下面的算法…

数学建模-时间序列预测步骤

目录 数据 第一步&#xff1a;定义时间 第二步&#xff1a;创建传统模型 结果 论文下笔 GG 数据 第一步&#xff1a;定义时间 第二步&#xff1a;创建传统模型 点击条件&#xff0c;点击 离群值全部勾选 点击统计 点击图 保存 选项 结果 论文下笔 由于我们的数据中不存在…

Android Text View 去掉默认的padding的实现方法

先看下最终实现效果&#xff0c;满意您在往下看&#xff1a; TextView 绘制的时候自带一定的Padding值&#xff0c;要想实现去掉默认的padding值&#xff0c;xml文件可以设置一个属性值 &#xff1a; android:includeFontPadding"false" 然后运行起来就会发现&…

书生·浦语大模型--第三节课笔记--基于 InternLM 和 LangChain 搭建你的知识库

文章目录 大模型开发范式RAGLangChain框架&#xff1a;构建向量数据库构建检索问答链优化建议web 部署 实践部分 大模型开发范式 LLM的局限性&#xff1a;时效性&#xff08;最新知识&#xff09;、专业能力有限&#xff08;垂直领域&#xff09;、定制化成本高&#xff08;个…

Android 仿快手视频列表,RecyclerView与Banner联动效果

这是看到群里讨论过快手APP的一个观看他人视频列表的一个联动效果&#xff0c;但是并不是完全按照这个软件的效果来做的&#xff0c;只是参考&#xff0c;并不是完全仿照这个软件来做的&#xff0c;没时间去优化排版问题了&#xff0c;请见谅&#xff0c;如图&#xff1a; 实现…

如何分析测试任务及需求(附分析流程)

测试分析 确认测试范围 根据测试项目的不同需求&#xff0c;有大致几类测试项目类型&#xff1a;商户/平台功能测试、支付方式接入测试、架构调整类测试、后台优化测试、性能测试、基本功能自动化测试。 测试项目需要按照文档要求进行测试需求分析&#xff0c;并给出对应的输出…

Swift 周报 第四十五期

文章目录 前言新闻和社区苹果或将扩充健康版图&#xff0c;为Apple Watch X铺路更新后的《Apple Developer Program 许可协议》现已发布 提案通过的提案 Swift论坛推荐博文话题讨论关于我们 前言 本期是 Swift 编辑组整理周报的第四十五期&#xff0c;每个模块已初步成型。各位…