写点什么

软件测试|教你用 Matplotlib 绘制多种饼图

  • 2023-11-15
    北京
  • 本文字数:1513 字

    阅读完需:约 5 分钟

前言

之前我们介绍了使用 matplotlib 绘制柱状图等图像,这篇文章我们将介绍使用 matplotlib 绘制饼状图,并且我们将介绍使用 matplotlib 绘制不同类型的饼图,下面我们直接开始绘制。

绘制非分裂式饼状图

饼状图是我们使用最多的数据分析图形之一,matplotlib 可以很简便地绘制饼状图,直接调用 pie()方法即可,代码如下:


import matplotlib as mplimport matplotlib.pyplot as plt
# 老规矩,防止乱码mpl.rcParams["font.sans-serif"] = ["SimHei"]mpl.rcParams["axes.unicode_minus"] = False
labels = "入门级轿车","中级轿车","高级轿车","豪华轿车","超豪华轿车"percent = [0.40,0.30,0.20,0.08,0.02]
colors = ["b","g","r","c","m"]
# 绘制图形plt.pie(percent, labels = labels, autopct="%3.1f%%", startangle=45, pctdistance=0.7, labeldistance=1.2, colors=colors)
plt.title("不同级别汽车销量占比")
plt.show()
复制代码


绘制的图像如下:


绘制分裂式饼图

分裂式饼图与非分裂式饼图的区别在于各块之间有间距,在使用 matplotlib 绘制分裂式饼图时,我们只需要加上 explode 参数即可,代码如下:


import matplotlib as mplimport matplotlib.pyplot as plt
# 老规矩,防止乱码mpl.rcParams["font.sans-serif"] = ["SimHei"]mpl.rcParams["axes.unicode_minus"] = False
labels = "入门级轿车","中级轿车","高级轿车","豪华轿车","超豪华轿车"percent = [0.40,0.30,0.20,0.08,0.02]
colors = ["b","g","r","c","m"]explode = (0.1,0.1,0.1,0.1,0.1)
# 绘制图形plt.pie(percent,explode=explode, labels = labels, autopct="%3.1f%%", startangle=45, pctdistance=0.7, labeldistance=1.2, colors=colors)
plt.title("不同级别汽车销量占比")
plt.show()
复制代码


绘制图像如下:


绘制嵌套式饼图

有时候我们需要对饼图进行更进一步的细分,以我们现在的不同级别汽车销量占比为例,我们可以进一步分析,不同级别汽车销量中,日系德系国产等系列占比多少,这样的情况,我们就可以使用嵌套式的饼图来进行分析了,绘制嵌套式饼图的代码如下:


import matplotlib.pyplot as pltimport matplotlib as mpl
mpl.rcParams["font.sans-serif"] = ["SimHei"]mpl.rcParams["axes.unicode_minus"] = False
fig=plt.figure(figsize=(10,10),dpi=120)
#数据集,p1, p2分别对应外部、内部百分⽐例
p1 = [40,30,20,8,2]p2 = [10,40,20,30,30,30,20,20,80,4,6,12,90,2,2,6]
labels = "入门级轿车","中级轿车","高级轿车","豪华轿车","超豪华轿车"
def func(pct): return r'%0.1f'%(pct) + '%'
plt.pie(p1, autopct=lambda pct: func(pct), radius=1, # 半径 pctdistance=0.85, # 百分⽐位置 wedgeprops=dict(linewidth=3,width=0.4,edgecolor='w'),# 饼图格式:间隔线宽、饼图宽度、边界颜⾊ labels=labels)
# 绘制内部饼图plt.pie(p2, autopct='%0.1f%%', radius=0.7, pctdistance=0.7, wedgeprops=dict(linewidth=3,width=0.7,edgecolor='w'))
# 设置图例标题、位置,frameon控制是否显示图例边框,bbox_to_anchor控制图例显示在饼图的外⾯plt.legend(labels,loc = 'upper right',bbox_to_anchor = (0.75,0,0.4,1),title ='汽车销量占比')plt.show()
复制代码


绘制的图像如下:


总结

本文主要讲解了使用 matplotlib 绘制饼状图的方法,分别讲述了非分裂式饼图,分裂式饼图以及嵌套式饼图的绘制方法,希望能够帮助到大家,关于饼状图绘制的方法,我们就介绍到这里。


获取更多技术资料,请点击!

用户头像

社区:ceshiren.com 微信:ceshiren2021 2019-10-23 加入

微信公众号:霍格沃兹测试开发 提供性能测试、自动化测试、测试开发等资料,实时更新一线互联网大厂测试岗位内推需求,共享测试行业动态及资讯,更可零距离接触众多业内大佬。

评论

发布
暂无评论
软件测试|教你用Matplotlib绘制多种饼图_霍格沃兹测试开发学社_InfoQ写作社区