Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >matplotlib之pyplot模块——饼图(pie():圆环图(donut)、二层圆环图、三层圆环图(旭日图))「建议收藏」

matplotlib之pyplot模块——饼图(pie():圆环图(donut)、二层圆环图、三层圆环图(旭日图))「建议收藏」

作者头像
全栈程序员站长
发布于 2022-11-09 07:35:10
发布于 2022-11-09 07:35:10
2.7K00
代码可运行
举报
运行总次数:0
代码可运行

大家好,又见面了,我是你们的朋友全栈君。

matplotlibpie()不单可以绘制饼图,还可以绘制圆环图(donut)。圆环图可以看成饼图的变种,matplotlib没有提供专门绘制圆环图的接口。

在matplotlib之pyplot模块之饼图(pie():基础参数,返回值)中,我们提到了wedgeprops参数,通过wedgeprops参数传递饼块对象Wedgewidth参数即可快速实现圆环图。

下面通过三个案例简单说明圆环图、二层圆环图、三层圆环图(旭日图)的制作方法。

案例:简易圆环图

通过案例可知,圆环图与饼图的实现相比,仅多了参数wedgeprops={'width': 0.5}

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
x = [1, 5, 4, 3]
labels = ['a', 'b', 'c', 'd']
plt.subplot(121)
plt.pie(x, labels=labels)
plt.title("饼图")
plt.subplot(122)
plt.pie(x, labels=labels, wedgeprops={ 
'width': 0.5})
plt.title("圆环图")
plt.show()

案例:二层圆环图

多层圆环图一般用于展示分组数据。本案例需要展示的数据为二层嵌套列表[[60., 32.], [37., 40.], [29., 10.]],内层圆环展示分组合计,外层圆环展示每个项目。

案例提供了两种写法,一种使用numpy处理数据,一种使用Python内置方法,主要牵扯到嵌套列表的分组求和,嵌套列表展平操作。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import numpy as np
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
size = 0.4
data = [[60., 32.], [37., 40.], [29., 10.]]
plt.subplot(121)
# 使用numpy处理数据
vals = np.array(data)
# 内层圆环
plt.pie(vals.sum(axis=1), radius=1-size, autopct='%1.1f%%', pctdistance=0.6,
wedgeprops=dict(width=size, edgecolor='w'))
# 外层圆环
plt.pie(vals.flatten(), radius=1, autopct='%1.1f%%', pctdistance=0.8,
wedgeprops=dict(width=size, edgecolor='w'))
plt.title('双层圆环图')
plt.subplot(122)
# 使用Python内置方法处理数据
# 按分组求和作为内层圆环数据源
sums = [sum(i) for i in data]
# 展平数据作为外层圆环数据源
flatten = sum(data, [])
# 内层圆环
plt.pie(sums, radius=1-size, autopct='%1.1f%%', pctdistance=0.6,
wedgeprops=dict(width=size, edgecolor='w'))
# 外层圆环
plt.pie(flatten, radius=1, autopct='%1.1f%%', pctdistance=0.8,
wedgeprops=dict(width=size, edgecolor='w'))
plt.title('双层圆环图')
plt.show()

案例:三层圆环图(旭日图)

本案例需要展示的数据为三层嵌套列表[[[20, 30], 32], [37, [20, 15]], [29, 10, [10, 5]]],外层圆环展示每个项目,第二层展示二级分组合计,内层圆环展示一级分组合计。

案例的关键在于如何处理三层圆环的数据,由于数据不规则,使用numpy也比较麻烦,因此采用循环处理。

原始数据为: [[[20, 30], 32], [37, [20, 15]], [29, 10, [10, 5]]] 目标数据为: [20, 30, 32, 37, 20, 15, 29, 10, 10, 5] [50, 32, 37, 35, 29, 10, 15] [82, 72, 54]

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
import matplotlib.pyplot as plt
plt.rcParams['font.family'] = 'SimHei'
size = 0.4
data = [[[20, 30], 32], [37, [20, 15]], [29, 10, [10, 5]]]
# data = [[[20, 30], [32]], [[37], [20, 15]], [[29, 10], [10, 5]]]
# 3个圆环图数据的临时变量
group1_data= []
group2_data = []
items_data = []
# 由于数据不规则,采用numpy也比较繁琐,因此采用循环处理数据
for group1 in data:
temp_group2 = []
temp_items = []
for group2 in group1:
if type(group2) is list:
temp_group2 = sum(group2)
items_data = items_data + group2
else:
temp_group2 = group2
items_data.append(temp_group2)
temp_items.append(temp_group2)
group2_data.append(temp_group2)
group1_data.append(sum(temp_items))
print(items_data, group2_data, group1_data)
# 外层圆环,数据为[20, 30, 32, 37, 20, 15, 29, 10, 10, 5]
plt.pie(items_data, radius=1.4, autopct='%1.1f%%', pctdistance=0.9,
wedgeprops=dict(width=size, edgecolor='w'))
# 第二层圆环,数据为[50, 32, 37, 35, 29, 10, 15]
plt.pie(group2_data, radius=1.4-size, autopct='%1.1f%%', pctdistance=0.8,
wedgeprops=dict(width=size, edgecolor='w'))
# 内层圆环,数据为[82, 72, 54]
plt.pie(group1_data, radius=1.4-2*size, autopct='%1.1f%%', pctdistance=0.6,
wedgeprops=dict(width=size, edgecolor='w'))
plt.title('三层圆环图', loc='left')
plt.show()

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/189440.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年9月25日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
matplotlib 饼图
饼图用来显示展示数据的比例分布特征。matplotlib 中 使用 pie() 函数来绘制饼图。
用户6021899
2019/08/14
1.8K0
软件测试|教你用Matplotlib绘制多种饼图
之前我们介绍了使用matplotlib绘制柱状图等图像,这篇文章我们将介绍使用matplotlib绘制饼状图,并且我们将介绍使用matplotlib绘制不同类型的饼图,下面我们直接开始绘制。
霍格沃兹测试开发Muller老师
2023/03/05
6550
数据可视化之matplotlib绘制饼状图
常常为Python的数据可视化而痴迷,将数据进行可视化只需要掌握相关库的方法使用即可。流水线式的库式调用实现正是显示python强大的库的功能。我们可以绘制各种各样的数据图样式,对于数据的反应更加直观而准确。
兰舟千帆
2022/07/16
1.4K0
数据可视化之matplotlib绘制饼状图
Matplotlib数据可视化:饼图与箱线图
pie()方法返回一个tuple,第一个元素为每个扇形对象组成的list,第二个元素为每个扇形的标签Text对象,第三个元素为每个扇形的数值标签对象,通过这三个对象,可以实现对单一扇形的设置。
Ai学习的老章
2020/06/04
7140
matplotlib圆环图/饼图显示比值
构建一个显示的数值的函数,将plt.pie中的autopct=该函数即可。 代码: import pandas as pd import matplotlib.pyplot as plt import matplotlib as mpl mpl.rcParams['font.size'] = 7.0 # matplotlib设置全局字体 # 创建两组数据 x1 = [30,25, 66, 13, 23] x2 = [29, 28, 90, 19, 31] x_0 = [1,0,0,0] #用于显示空心
生信编程日常
2021/04/16
3.1K0
matplotlib圆环图/饼图显示比值
数据可视化第二版-03部分-07章-局部与整体
本系列博客为基于《数据可视化第二版》一书的教学资源博客。本文主要是第07章-局部与整体可视化的案例相关。
IT从业者张某某
2023/10/16
3250
数据可视化第二版-03部分-07章-局部与整体
matplotlib相关图形绘制(一)
  折线图用于显示随时间或有序类别而变化的趋势。折线图其实是由多个点连接在一起得到了,当点足够多的时候,折线图就变成了平滑的曲线。
朱小五
2020/03/05
1.1K0
matplotlib相关图形绘制(一)
Python如何使用Matplotlib模块的pie()函数绘制饼形图?
虫无涯
2023/11/16
5950
Python带你看不一样的《青春有你2》小姐姐之身高体重城市可视化分析
本篇我们基于上一篇文章爬取下来的数据进行分析,我们绘制学员城市柱状图,体重分布饼状图,身高分布饼状图。
极简小课
2022/06/27
1.5K0
Python带你看不一样的《青春有你2》小姐姐之身高体重城市可视化分析
Matplotlib绘制六种可视化图表,值得收藏
可视化图表,有相当多种,但常见的也就下面几种,其他比较复杂一点,大都也是基于如下几种进行组合,变换出来的。对于初学者来说,很容易被这官网上众多的图表类型给吓着了,由于种类太多,几种图表的绘制方法很有可能会混淆起来。
double
2019/08/20
1.1K0
绘制统计图形(一)
此节内容与上一节内容类似,可以看做是并列关系。本节以实例的方式来为大家讲解各种图形的应用,并介绍一些新的图形。
python数据可视化之路
2023/02/23
1.8K0
绘制统计图形(一)
Python matplotlib绘制饼图
继前面使用matplotlib绘制折线图、散点图、柱状图和直方图,本篇文章继续介绍使用matplotlib绘制饼图。
Python碎片公众号
2021/02/26
2.8K0
Python matplotlib绘制饼图
局部整体(三)利用python绘制饼图
饼图是一个将整体划分为几个扇形的圆形统计图表,用于描述数量、频率或百分比之间的相对关系。饼形图适合用来快速展示数据比例分布,但不利于展示较多项目。饼图也因过于关注不同部分彼此或相对于整体的大小关系,导致与其他饼形图作整体比较时不能显示出任何变化而饱受诟病。
HsuHeinrich
2024/11/23
2650
局部整体(三)利用python绘制饼图
【matplotlib】3-绘制统计图形
柱状图是描述统计中使用频率非常高的一种统计图形。它有垂直样式和水平样式两种可视化效果。这里我们主要介绍柱状图的应用场景和绘制原理。
程序员小涛
2022/12/28
2.2K1
【matplotlib】3-绘制统计图形
Python matplotlib数据可视化 绘制柱形图、堆叠图、折线图、饼图和环图
Python中可以通过matplotlib模块的pyplot子库来完成绘图。Matplotlib可用于创建高质量的图表和图形,也可以用于绘制和可视化结果。matplotlib是Python优秀的数据可视化第三方库,matplotlib.pyplot是绘制种类可视化图形的命令子库,相当于快捷方式 import matplotlib.pyplot as plt.
叶庭云
2020/09/17
3.7K0
Python matplotlib数据可视化  绘制柱形图、堆叠图、折线图、饼图和环图
Python绘制饼状图
饼状图(pie chart)一般用于描述分类型数据的相对频数或百分数频数分布,呈现部分与总体的关系。
阿黎逸阳
2021/02/08
3.3K0
matplotlib基础绘图命令之pie
这样的饼图并没有任何实用价值,为了有效的展示信息,至少我们还需要显示数据的标签和百分比的数值。此时就需要调整参数,pie方法常用的参数有以下几个
生信修炼手册
2020/07/24
1.6K0
matplotlib基础绘图命令之pie
局部整体(四)利用python绘制圆环图
圆环图是一个将整体划分为几个扇形的圆形统计图表,用于描述数量、频率或百分比之间的相对关系。圆环图不再只看「饼」的面积,更重视总体数值的变化,专注于阅读弧线的长度,而不是比较「饼与饼」之间的比例不同。除此之外,圆环图中间的空白处更可以用来显示其他信息,因此更能节省空间。
HsuHeinrich
2024/11/23
2120
局部整体(四)利用python绘制圆环图
数据可视化:认识Matplotlib
数据经过NumPy和Pandas的计算,最终得到了我们想要的数据结论,但是这些数据结论并不直观,所以想要把数据分析的结论做到可视化,让任何其他人看起来毫无压力,那么Matplotlib将派上用场。
马拉松程序员
2023/09/02
3620
数据可视化:认识Matplotlib
数据可视化-来来来Matplotlib画饼充饥
今天我们将学习如何使用Matplotlib创建饼图, 饼图非常适合以清晰显示每个类别比例的方式显示数据。我们将学习如何绘制饼图,自定义它的外观等等。让我们开始吧...
XXXX-user
2019/08/05
6290
数据可视化-来来来Matplotlib画饼充饥
相关推荐
matplotlib 饼图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验