Python Matplotlib饼图绘制详解:参数解析与实战示例

拾光
拾光
发布时间:2026-10-13| 5人浏览过
原创

本文深入解析Python Matplotlib库中绘制饼状图的核心函数pie()。详细讲解x、explode、labels、colors、autopct等关键参数的用法,并通过从基础绘图到设置阴影、分离扇区及保存本地文件的完整代码示例,帮助开发者快速掌握饼图绘制技巧,实现高质量的数据可视化效果。

Matplotlib饼图绘制概述

本文详细解析了Python中Matplotlib库绘制饼状图的参数配置与使用方法,通过具体的代码示例进行演示,旨在为读者的学习或工作提供有价值的参考。

在Python的Matplotlib绘图模块中,生成饼状图的核心函数是pie()。

pie函数核心参数解析

以下是对pie()函数主要参数的详细解读:

plt.pie(x, explode=None, labels=None, colors=None, autopct=None, pctdistance=0.6, shadow=False, labeldistance=1.1, startangle=None, radius=None, counterclock=True, wedgeprops=None, textprops=None, center=(0, 0), frame=False)

  • x:用于指定绘图所需的基础数据。
  • explode:用于指定饼图中特定扇区的突出显示程度,实现类似爆炸式的视觉效果。
  • labels:为饼图的各个扇区添加文字标签,作用类似于图例说明。
  • colors:用于指定饼图中各扇区的填充颜色。
  • autopct:用于自动在扇区内显示百分比数值,支持自定义格式化字符串。
  • pctdistance:用于设置百分比文本标签距离圆心的相对距离。
  • shadow:布尔值,决定是否在饼图下方添加阴影效果。
  • labeldistance:用于设置各扇区文字标签(图例)距离圆心的相对距离。
  • startangle:设置饼图起始扇区的初始旋转角度。
  • radius:设置饼图的半径大小。
  • counterclock:布尔值,决定饼图扇区是否按逆时针方向排列。
  • wedgeprops:用于设置饼图内外边界的属性,例如边界线的粗细和颜色。
  • textprops:用于设置饼图中文本的属性,如字体大小和颜色。
  • center:指定饼图中心点的坐标位置,默认值为原点(0, 0)。
  • frame:布尔值,决定是否显示饼图背后的坐标轴图框。若设为True,需同时控制x轴和y轴的范围以及饼图中心位置。

饼图绘制实战示例

接下来通过具体实例展示上述参数的应用。

基础绘图函数调用

1. 基础绘图函数调用


import matplotlib.pyplot as plt
#解决中文乱码问题
# 正常显示中文标签
plt.rcParams['font.sans-serif']=['SimHei']
# 用来正常显示负号
plt.rcParams['axes.unicode_minus']=False
#刻度的大小
plt.rcParams['axes.labelsize'] = 16
#线的粗细
plt.rcParams['lines.linewidth'] = 2
#x轴的大小
plt.rcParams['xtick.labelsize'] = 14
#y轴的大小
plt.rcParams['ytick.labelsize'] = 14
#图例大小
plt.rcParams['legend.fontsize'] = 14
#图的大小
plt.rcParams['figure.figsize'] = [12,8]
#=======================================#基本的使用实例
#定义饼的标签,
labels = ['A','B','C','E']
#每个标签所占的比例
x = [15,30,45,10]
#绘制饼图
plt.pie(x,labels=labels)
plt.show()

注意:若不使用其他参数直接调用该函数,生成的图形可能不是标准的圆形;且默认输出结果尺寸较大,建议根据实际需求调整参数,避免直接这样操作。

标准正圆形饼图绘制

2. 绘制标准正圆形饼状图


import matplotlib.pyplot as plt
labels = ['A','B','C','D']
x = [15,30,45,10]
#显示百分比
plt.pie(x,labels=labels,autopct='%3.2f%%')
#设置x,y的刻度一样,使其饼图为正圆
plt.axis('equal')
plt.show()

文本标签属性设置

3. 设置饼图文本标签的属性值


import matplotlib.pyplot as plt
labels = ['A','B','C','D']
x = [15,30,45,10]
#显示百分比
#textprops={'fontsize':18,'color':'k'} 设置为字体大小为18,颜色黑色
plt.pie(x,labels=labels,autopct='%3.2f%%',textprops={'fontsize':18,'color':'k'})
#设置x,y的刻度一样,使其饼图为正圆
plt.axis('equal')

plt.show()

扇区分离与阴影效果

4. 实现饼图扇区分离与阴影效果


import matplotlib.pyplot as plt
labels = ['A','B','C','D']
x = [15,30,45,10]
#显示百分比
#饼图分离
explode = (0,0.1,0,0)
#设置阴影效果
plt.pie(x,labels=labels,autopct='%3.2f%%',explode=explode,shadow=True)
#设置x,y的刻度一样,使其饼图为正圆
plt.axis('equal')

plt.show()

起始角度调整

5. 调整起始角度


import matplotlib.pyplot as plt

labels = ['A','B','C','D']

x = [15,30,45,10]

#显示百分比
#饼图分离
explode = (0,0.1,0,0)

#设置阴影效果
#startangle,为起始角度,0表示从0开始逆时针旋转,为第一块。
plt.pie(x,labels=labels,autopct='%3.2f%%',explode=explode,shadow=True,startangle=60)

#设置x,y的刻度一样,使其饼图为正圆
plt.axis('equal')

plt.show()

综合设置与本地保存

6. 设置圆心距离、提示标签并保存至本地


import matplotlib.pyplot as plt

labels = ['A','B','C','D']

x = [15,30,45,10]

#显示百分比
#饼图分离
explode = (0,0.1,0,0)

#设置阴影效果
#startangle,为起始角度,0表示从0开始逆时针旋转,为第一块。
#pctdistance,百分比的文本离圆心的距离为0.5
plt.pie(x,labels=labels,autopct='%3.2f%%',explode=explode,shadow=True,startangle=60,pctdistance=0.8)

#设置x,y的刻度一样,使其饼图为正圆
plt.axis('equal')
plt.legend()
#保存到本地文件夹
plt.savefig('./饼图.png')
plt.show()

以上内容涵盖了Python Matplotlib饼图绘制的主要知识点,希望对读者有所帮助,欢迎继续支持本站获取更多技术资源。

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。