python饼图教程_从零开始学Python--matplotlib(饼图)

原标题:从零开始学Python--matplotlib(饼图)

前言

在从零开始学Python系列10中,我们用条形图来展示离散变量的分布呈现,在常见的统计图像中,还有一种图像可以表示离散变量各水平占比情况,这就是我们要讲解的饼图。饼图的绘制可以使用matplotlib库中的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:指定饼图的中心点位置,默认为原点

frame:是否要显示饼图背后的图框,如果设置为True的话,需要同时控制图框x轴、y轴的范围和饼图的中心位置;饼图的绘制

案例:芝麻信用失信用户分析

关于pie函数的参数我们讲了这么多,光讲不练假把式,我们接下来通过案例,来绘制一个个性化的饼图。关于绘图数据,我们借用芝麻信用近300万失信人群的样本统计数据,该数据显示,从受教育水平上来看,中专占比25.15%,大专占比37.24%,本科占比33.36%,硕士占比3.68%,剩余的其他学历占比0.57%。对于这样一组数据,我们该如何使用饼图来呈现呢?

# 导入第三方模块

importmatplotlib.pyplot asplt

# 设置绘图的主题风格(不妨使用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()

结语

OK,今天关于Pyhton绘制条形图的讲解就到此结束,如果你感兴趣,不妨和我一起学习与交流,同时也欢迎各位朋友继续转发与分享,让系统的知识不断的扩散出去。下一期我们将推送单个数值变量的分布图形,包括盒形图和直方图。文中相关的Python脚本和PDF版本已存放到百度云盘,可以通过下面的链接获取:

链接: https://pan.baidu.com/s/1slmbwTJ 密码: 9cu4

待续……

本文已获作者授权。

往期从零开始学Python系列:返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值