社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

从零开始学Python-matplotlib系列(II):饼图

EasyCharts • 7 年前 • 977 次点击  

前言

       在从零开始学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%。对于这样一组数据,我们该如何使用饼图来呈现呢?

# 导入第三方模块
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()



结语

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

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


Python Seaborn (Ⅰ) 艺术化的图表控制

Python Seaborn (Ⅱ) 斑驳陆离的调色板

Python Seaborn (Ⅲ) 分布数据集的可视化

Python Seaborn (Ⅳ) 线性关系的可视化

Python Seaborn (Ⅴ) 分类数据的绘制

10分钟python seaborn绘图入门 (Ⅱ): barplot 与 countplot

10 分钟 python seaborn 绘图入门 (Ⅳ): 回归模型 lmplot

从零开始学Python-matplotlib系列(I):条形图


如需转载请联系EasyCharts团队!

微信后台回复“转载”即可!



【书籍推荐】 《Excel 数据之美--科学图表与商业图表的绘制》

【手册获取】国内首款-数据可视化参考手册:专业绘图必备

【必备插件】  EasyCharts -- Excel图表插件

【网易云课堂】  Excel 商业图表修炼秘笈之基础篇



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/fJDPYT2dhH
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/4005
 
977 次点击