Python基于Matplotlib绘制饼图的详细教程

码头散步
码头散步
发布时间:2026-10-10| 2人浏览过
原创

本文详解如何使用Python的Matplotlib库绘制饼图与环形图,涵盖基础参数配置、扇区突出、标签优化及小类别合并技巧,附完整代码示例与排版注意事项,帮助快速掌握占比类图表的实现方法。

核心目标:用plt.pie()快速生成占比图表

饼图适用于展示少数分类的占比关系(建议≤8类)。Matplotlib通过plt.pie()函数自动计算比例,只需传入数值数组即可生成基础图表。关键参数如autopct控制百分比显示,colors自定义配色,startangle调整起始方向。

第1步:基础饼图绘制与核心参数

目的:创建带分类标签和占比显示的饼图
入口:安装matplotlib后执行以下代码
关键参数:x接收数值列表,labels设置分类名称,axis("equal")确保正圆输出

import matplotlib.pyplot as plt

# 统一中文与符号配置
plt.rcParams["font.sans-serif"] = ["SimHei"]
plt.rcParams["axes.unicode_minus"] = False

categories = ["服饰", "美妆", "食品", "数码", "家居"]
sales = [250, 180, 220, 300, 150]

plt.figure(figsize=(8, 8))
plt.pie(sales, labels=categories, autopct="%1.1f%%", startangle=90)
plt.axis("equal")
plt.show()

第2步:扇区分离与样式增强

目的:突出特定分类并优化视觉层次
操作:使用explode参数分离扇区,shadow=True添加立体效果,textprops统一文本样式

# explode对应每个扇区的分离距离(0表示不移除)
explode = (0, 0, 0, 0.1, 0)  # 仅第四个扇区分离

patches, texts, autotexts = plt.pie(
    sales,
    explode=explode,
    autopct="%1.1f%%",
    textprops={"fontsize": 11}
)

# 批量修改占比文字颜色与粗细
for t in autotexts:
    t.set_color("white")
    t.set_fontweight("bold")

第3步:环形图实现与中心标注

目的:创建空心环形图并在中心添加汇总信息
技巧:通过双层plt.pie()叠加实现,外层设wedgeprops={'width':0.3}控制环宽,内层用白色填充镂空

# 外层数据饼图
plt.pie(sales, wedgeprops={"width": 0.3}, labeldistance=1.1)

# 内层白色圆覆盖中心
plt.pie([1], radius=0.7, colors=["white"])

# 添加中心文本
plt.text(0, 0, "总计\n1100万", ha="center", va="center", fontsize=12)

关键注意事项

  1. 类别限制:超过8类会导致扇区过小难以阅读,应合并次要分类至“其他”组
  2. 正圆保障:必须调用plt.axis("equal")防止画布拉伸变形
  3. 高清输出:使用plt.savefig("chart.png", dpi=300, bbox_inches="tight")替代show()导出矢量级图像
  4. 对比替代方案:精确数值对比推荐使用柱状图,饼图更适合直观呈现比例关系

以上就是Python基于Matplotlib绘制饼图的详细内容,更多关于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 算法库。