Python基于Matplotlib绘制饼图的详细教程
本文详解如何使用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)
关键注意事项
- 类别限制:超过8类会导致扇区过小难以阅读,应合并次要分类至“其他”组
- 正圆保障:必须调用
plt.axis("equal")防止画布拉伸变形 - 高清输出:使用
plt.savefig("chart.png", dpi=300, bbox_inches="tight")替代show()导出矢量级图像 - 对比替代方案:精确数值对比推荐使用柱状图,饼图更适合直观呈现比例关系
以上就是Python基于Matplotlib绘制饼图的详细内容,更多关于Python Matplotlib绘制饼图的资料请关注本站其它相关文章!
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









