当前位置: 首页 > news >正文

软件测试|使用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.lryc.cn/news/281173.html

相关文章:

  • vue3-响应式基础之ref
  • 华为网络设备 通过路由器子接口 Dot1q终结子接口实现跨VLAN通信
  • 代码随想录算法训练48 | 动态规划part09
  • 2024最新适用于 Windows 、Mac 的最佳屏幕录制软件
  • 【Docker】概述与安装
  • 衡水学院新人真题百练2022(1-20)修订版
  • 远程调用(OpenFeign)
  • 智能光栅光片显微成像技术的LabVIEW解决方案
  • 手撕乘积(**Multiplication** **Product**): 穷举和图示(2) 点积的几何意义
  • postman环境变量全局变量设置
  • Linux 内核线程
  • Golang学习之路一七fmt的使用
  • windows使用redis-安装和配置
  • Kafka系列(一)
  • Kotlin中的委托
  • VUE2/3:element ui table表格的显隐列(若依框架)
  • PTA-7-4 堆排序
  • uniapp滑动页面切换和下拉刷新,触底加载更多(swiper + scroll-view)
  • git 删除 submodule 子模块的步骤
  • 一文彻底解析 Compose 的穿透刺客 -- CompositionLocal
  • iOS 位移枚举NS_OPTIONS(如何实现多个枚举值的同时传入判断)
  • 【Axure高保真原型】树控制内联框架
  • Visual Studio常用快捷键及调试操作
  • MySQL 从零开始:02 MySQL 安装
  • GB28181/GB35114平台LiveGBS何如添加白名单,使指定海康、大华、华为等GB28181摄像头或录像机设备可以免密接入
  • 【计算机组成与体系结构Ⅱ】MIPS指令系统(实验)
  • jsonvue-mobile 联动方式说明。
  • abseil中的微操
  • NLP论文阅读记录 - 2022 | WOS 数据驱动的英文文本摘要抽取模型的构建与应用
  • 虹科新闻丨LIBERO医药冷链PDF温度计完成2024年航空安全鉴定,可安全空运!