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

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

本文详解如何使用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 相关产品和应用

全部下载

专题列表