Python Matplotlib绘制饼图参数详解与实战

Hazel
Hazel
发布时间:2026-10-13 | 3人浏览过
原创

本文详细介绍Python中Matplotlib库绘制饼图的方法,重点解析pie函数的各项关键参数,包括数据输入、颜色设置、标签定位及阴影效果等。通过完整代码示例展示如何构建带有百分比显示、自定义颜色及突出特定扇区的饼图,适用于数据分布可视化场景。

本文分享使用Python Matplotlib库绘制饼图的完整实现方案,包含详细的参数说明与可运行代码,供读者参考学习。

函数参数说明

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轴的范围及饼图中心位置。

代码实现

import matplotlib.pyplot as plt
 
# 设置绘图的主题风格(不妨使用R中的ggplot分隔)
plt.style.use('ggplot')
 
# 构造数据
edu = [0.2515,0.3724,0.3336,0.0368,0.0057]
labels = ['中专','大专','本科','硕士','其他']
 
explode = [0,0.1,0,0,0] # 用于突出显示大专学历人群
colors=['#9999ff','#ff9999','#7777aa','#2442aa','#dd5555'] # 自定义颜色
 
# 中文乱码和坐标轴负号的处理
plt.rcParams['font.sans-serif'] = ['Microsoft YaHei']
plt.rcParams['axes.unicode_minus'] = False
 
# 将横、纵坐标轴标准化处理,保证饼图是一个正圆,否则为椭圆
plt.axes(aspect='equal')
 
# 控制x轴和y轴的范围
plt.xlim(0,4)
plt.ylim(0,4)
 
# 绘制饼图
plt.pie(x = edu, # 绘图数据
    explode=explode, # 突出显示大专人群
    labels=labels, # 添加教育水平标签
    colors=colors, # 设置饼图的自定义填充色
    autopct='%.1f%%', # 设置百分比的格式,这里保留一位小数
    pctdistance=0.8, # 设置百分比标签与圆心的距离
    labeldistance = 1.15, # 设置教育水平标签与圆心的距离
    startangle = 180, # 设置饼图的初始角度
    radius = 1.5, # 设置饼图的半径
    counterclock = False, # 是否逆时针,这里设置为顺时针方向
    wedgeprops = {'linewidth': 1.5, 'edgecolor':'green'},# 设置饼图内外边界的属性值
    textprops = {'fontsize':12, 'color':'k'}, # 设置文本标签的属性值
    center = (1.8,1.8), # 设置饼图的原点
    frame = 1 )# 是否显示饼图的图框,这里设置显示
 
# 删除x轴和y轴的刻度
plt.xticks(())
plt.yticks(())
# 添加图标题
plt.title('芝麻信用失信用户教育水平分布')
 
# 显示图形
plt.show()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持本站。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表