Python中使用Matplotlib绘制圆环图

news2025/3/3 6:42:14

26ba96fa4310e6b93e519de5d9893e47.jpeg

更多Python学习内容:ipengtao.com

Matplotlib是Python中一个非常强大的库,它可以创建各种类型的图表,包括圆环图。圆环图是一种用于显示不同部分的相对比例的图表,通常用于呈现百分比或比例数据。在本文中,将深入探讨如何使用Matplotlib库创建圆环图,并提供详细的示例代码。

安装Matplotlib

首先,确保已经安装了Matplotlib库。如果尚未安装,可以使用以下命令安装:

pip install matplotlib

创建基本的圆环图

从一个基本的示例开始,创建一个简单的圆环图。

以下是一个示例代码:

import matplotlib.pyplot as plt

# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

# 创建圆环图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

# 内圆半径,实现圆环效果
circle = plt.Circle((0, 0), 0.7, fc='white')
fig.gca().add_artist(circle)

# 显示图例
plt.legend(labels, loc='best')

# 设置标题
plt.title("Basic Donut Chart")

# 显示图表
plt.axis('equal')
plt.show()

在上述示例中,首先定义了要显示的数据,包括标签和大小。然后,使用Matplotlib的pie函数创建了圆环图,并通过添加一个白色的内圆来实现圆环效果。最后,添加了图例、设置标题并显示图表。

自定义圆环图

Matplotlib允许你根据需要自定义圆环图的样式、颜色和注释。

以下是一个自定义示例:

import matplotlib.pyplot as plt

# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
colors = ['#ff9999', '#66b3ff', '#99ff99', '#ffcc99']

# 自定义圆环图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, colors=colors, wedgeprops={'edgecolor': 'gray'})

# 内圆半径,实现圆环效果
circle = plt.Circle((0, 0), 0.7, fc='white')
fig.gca().add_artist(circle)

# 设置标题
plt.title("Custom Donut Chart")

# 显示图表
plt.axis('equal')
plt.show()

在这个示例中,自定义了颜色、边缘颜色以及注释的位置和格式。可以根据需要进一步自定义圆环图,以满足可视化需求。

圆环图的进阶应用

除了基本的圆环图之外,Matplotlib还提供了一些进阶应用选项,以进一步定制和增强图表。

以下是一些示例:

内嵌文本标签

可以在圆环图的中心添加文本标签,以提供更多信息。以下是一个示例:

import matplotlib.pyplot as plt

# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

# 创建圆环图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90)

# 内圆半径,实现圆环效果
circle = plt.Circle((0, 0), 0.7, fc='white')
fig.gca().add_artist(circle)

# 添加中心文本标签
plt.text(0, 0, 'Total\n100%', fontsize=12, ha='center', va='center')

# 设置标题
plt.title("Donut Chart with Center Text")

# 显示图表
plt.axis('equal')
plt.show()

圆环图的偏移

可以使用explode参数来突出显示圆环图中的特定部分,以强调它们。

以下是一个示例:

import matplotlib.pyplot as plt

# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)  # 突出显示第二个部分

# 创建圆环图
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, explode=explode)

# 内圆半径,实现圆环效果
circle = plt.Circle((0, 0), 0.7, fc='white')
fig.gca().add_artist(circle)

# 设置标题
plt.title("Donut Chart with Exploded Slice")

# 显示图表
plt.axis('equal')
plt.show()

圆环的阴影

可以为圆环图添加阴影效果,以增强其可读性。

以下是一个示例:

import matplotlib.pyplot as plt

# 数据
labels = ['A', 'B', 'C', 'D']
sizes = [15, 30, 45, 10]

# 创建圆环图并添加阴影
fig, ax = plt.subplots()
ax.pie(sizes, labels=labels, autopct='%1.1f%%', startangle=90, shadow=True)

# 内圆半径,实现圆环效果
circle = plt.Circle((0, 0), 0.7, fc='white')
fig.gca().add_artist(circle)

# 设置标题
plt.title("Donut Chart with Shadow")

# 显示图表
plt.axis('equal')
plt.show()

总结

在本文中,深入研究了如何使用Matplotlib库创建圆环图,这是一种用于可视化相对比例数据的有效方式。首先介绍了Matplotlib的基本安装方法,并演示了如何创建简单的圆环图。接着,探讨了如何自定义圆环图,包括颜色、边缘颜色、文本标签和突出显示部分。此外,我们还展示了如何添加中心文本标签、偏移和阴影,以进一步美化和强调图表。

圆环图在数据可视化中具有广泛的应用,通常用于呈现百分比、比例和相对大小的信息。通过Matplotlib的灵活性,可以根据自己的需求和风格创建不同类型的圆环图,以满足不同场景的需求。

综而言之,Matplotlib提供了一个强大的工具,用于创建具有自定义外观和注释的圆环图,以使数据更加清晰地传达给观众。无论是在数据分析、数据报告制作还是信息可视化方面工作,这些技巧都可以帮助更好地利用Matplotlib来呈现和共享数据。希望这些示例代码和教程对你在数据可视化任务中的应用有所帮助。

如果你觉得文章还不错,请大家 点赞、分享、留言 下,因为这将是我持续输出更多优质文章的最强动力!

更多Python学习内容:ipengtao.com

干货笔记整理

  100个爬虫常见问题.pdf ,太全了!

Python 自动化运维 100个常见问题.pdf

Python Web 开发常见的100个问题.pdf

124个Python案例,完整源代码!

PYTHON 3.10中文版官方文档

耗时三个月整理的《Python之路2.0.pdf》开放下载

最经典的编程教材《Think Python》开源中文版.PDF下载

3c970e36bdb374e41e71ffa9469d4095.png

点击“阅读原文”,获取更多学习内容

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

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

相关文章

FreeRTOS列表与列表项相关知识总结以及列表项的插入与删除实战

1.列表与列表项概念及结构体介绍 1.1列表项简介 列表相当于链表,列表项相当于节点,FreeRTOS 中的列表是一个双向环形链表 1.2 列表、列表项、迷你列表项结构体 1)列表结构体 typedef struct xLIST { listFIRST_LIST_INTEGRITY_CHECK_VAL…

我的 2023 年终总结

时间太瘦,指缝太宽,岁月就这样匆匆流逝,似乎年初许愿时的憧憬还在眼前,转瞬就到了年尾,对2023年做个简单的回顾吧 我的 2022 年终总结 我的 2019 年终总结 总结2022年展望2023年 2023年的目标 参与晋升,希望…

机器学习、人工智能、深度学习的关系

人工智能(Artificial Intelligence,AI) 人工智能范围很广,它是一门新的科学与工程,是研究、开发用于模拟、延伸和扩展人的智能的理论、方法、技术及应用系统的技术科学,研究内容涵盖语音识别、图像识别、自然语言处理、智能搜索和…

ssm基于冲突动态监测算法的健身房预约系统的设计与实现论文

摘 要 传统办法管理信息首先需要花费的时间比较多,其次数据出错率比较高,而且对错误的数据进行更改也比较困难,最后,检索数据费事费力。因此,在计算机上安装健身房预约系统软件来发挥其高效地信息处理的作用&#xff…

【哈希数组】697. 数组的度

697. 数组的度 解题思路 首先创建一个IndexMap 键表示元素 值表示一个列表List list存储该元素在数组的所有索引之后再次创建一个map1 针对上面的List 键表示列表的长度 值表示索引的差值遍历indexmap 将所有的list的长度 和 索引的差值存储遍历map1 找到最大的key 那么这个Ke…

MySQL:子查询

子查询 子查询是嵌套在较大查询中的 SQL 查询,也称内部查询或内部选择,包含子查询的语句也称为外部查询或外部选择。简单来说,子查询就是指将一个 select 查询(子查询)的结果作为另一个 SQL 语句(主查询&a…

C# 如何使用?、? 和 ??的区别和使用案例

目录 ? 运算符 使用案例 ?? 运算符 使用案例 总结 在 C# 中,? 和 ?? 运算符在处理 null 值时起着不同的作用,并且具有特定的使用场景。 ? 运算符 ? 运算符,也称为空条件运算符,在 C# 6.0 及更高版本中引入。它允许…

C语言实例_生成6位数的随机密码

一、前言 随着数字化时代的到来,人们在各个方面需要使用密码来保护个人隐私和敏感信息的安全。为了确保密码的安全性,密码应该是足够强大和难以猜测的,这就需要密码生成器来帮助用户生成高强度的随机密码。 随机密码生成器是一种计算机程序…

界面控件DevExpress v23.2全新发布 - 全新升级的UI本地化API

DevExpress拥有.NET开发需要的所有平台控件,包含600多个UI控件、报表平台、DevExpress Dashboard eXpressApp 框架、适用于 Visual Studio的CodeRush等一系列辅助工具。屡获大奖的软件开发平台DevExpress 今年第一个重要版本v23.1正式发布,该版本拥有众多…

给idea添加右键打开功能

添加文件夹右键程序打开 开始运行regedit 找到 HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Directory\shell 1、右键shell目录新建项Idea 2、右键Idea新建command 3、选择Idea 右侧空白出新建字符串 名字为Icon 值填入idea的运行程序地址 4、选择command 默认项填入idea的运行…

kubeadm来搭建k8s集群。

我们采用了二进制包搭建出的k8s集群,本次我们采用更为简单的kubeadm的方式来搭建k8s集群。 二进制的搭建更适合50台主机以上的大集群,kubeadm更适合中小型企业的集群搭建 主机配置建议:2c 4G 主机节点 IP …

[年终总结]人生就是大闹一场

讲真的,感觉过去这一年的体验,非常精彩,哈哈哈哈 体验了 裸辞,并没有想象中那么可怕,也没有想象中那么焦虑 经历了 入职之后又被裁员,心情没有那么大的起伏 解锁了 深圳/佛山/珠海/澳门/昆明/大理/新疆/成都 ,见了很多人,碰撞出了很多 idea 体会了 没有目的的去做一件事情,是什…

20231231_小米音箱接入chatgpt

参考资料: GitHub - yihong0618/xiaogpt: Play ChatGPT and other LLM with Xiaomi AI Speaker 小爱音箱ChatGPT的折腾记录:win平台部署并运行成功_哔哩哔哩_bilibili GitHub - chatanywhere/GPT_API_free: Free ChatGPT API Key,免费Chat…

Unity Window安装包制作

Unity Window安装包制作 介绍一、RAR自解压方式1、找到Unity打包的可执行程序2.创建自解压文件3.配置设置4、最后点击确定等待压缩完成即可(默认生成位置为你选中文件右键点击添加到压缩文件时的路径) 二、Setup Factory工具安装制作Window安装包相关常用…

2023最新租号平台系统源码支持单独租用或合租使用

这是一款租号平台源码,采用常见的租号模式。目前网络上还很少见到此类类型的源码。 平台的主要功能如下: 支持单独租用或采用合租模式; 采用易支付通用接口进行支付; 添加邀请返利功能,以便站长更好地推广&#xf…

uniapp 安卓模拟器链接

下载genymotion 安装 配置adb路径 模拟端口设为 5307

进阶学习——Linux系统服务器硬件认识与RAID磁盘

目录 一、服务器知识补充 1.硬件 2.服务器常见故障 二、认识RAID 1.什么是RAID 2.RAID的优点 3.RAID的实现方式 三、RAID磁盘陈列 1.RAID 0 磁盘陈列介绍——RAID 0 2.RAID 1 磁盘陈列介绍——RAID 1 3.RAID 5 磁盘陈列介绍——RAID 5 4.RAID 6 磁盘陈列介绍——RA…

用通俗易懂的方式讲解大模型:LangChain Agent 原理解析

LangChain 是一个基于 LLM(大型语言模型)的编程框架,旨在帮助开发人员使用 LLM 构建端到端的应用程序。它提供了一套工具、组件和接口,可以简化创建由 LLM 和聊天模型提供支持的应用程序的过程。 LangChain 由几大组件构成&#…

03 HAL库下UART的使用

引言: 需要使用到的uart调试工具在文章最后的资料里面 题外话:uart和usart的区别 UART(Universal Asynchronous Receiver/Transmitter)和USART(Universal Synchronous/Asynchronous Receiver/Transmitter)…

Halcon腐蚀erosion_circle/erosion_rectanglel

Halcon腐蚀 文章目录 Halcon腐蚀 腐蚀操作是对所选区域进行“收缩”的一种操作,可以用于消除边缘和杂点。腐蚀区域的大小与结构元素的大小和形状相关。其原理是使用,个自定义的结构元素,如矩形、圆形等,在二值图像上进行类似于“滤…