按照国际惯例,写在最开始的是对要介绍对象的定义。喏,这是从维基百科搬运过来的对饼图的解释,请安心受下:

​ 饼图,或称饼状图,是一个划分为几个扇形的圆形统计图表,用于描述量、频率或百分比之间的相对关系。在饼图中,每个扇区的弧长(以及圆心角和面积)大小为其所表示的数量的比例。这些扇区合在一起刚好是一个完全的圆形。顾名思义,这些扇区拼成了一个切开的饼形图案。

​ 当然,文字的解释永远没有一个图来的直观:

​ 这也是从维基百科上偷运过来的英语为母语的人口分布饼图。不客气的讲,这个图画的相当简陋,只能看出来一个大概的比例,像最后三个基本看不出来差别多有多少,所以我们在绘图的时候尽量加上数量标签,这样一眼就能看得出来差距在哪里了。

画一个饼图

画图第一步是什么?当然是要数据啊,所有的图都是对数据的一种展现形式而已!ok,先来看下我们的数据长什么样子:

这是几个学校语数外平均成绩数据的前五行,整个数据源包含21条记录,也就是有21个学校的平均成绩信息,我们计划查看其中一个学校或者几个学校的成绩饼图。

先画一个最简单的饼图看看效果:

plt.figure(figsize=(8,8),dpi=80) #新建画布,由于饼图是原型的,所以新建画布为正方形 plt.pie(data2.iloc[0,1:] #选取数据源为第一小学的成绩 ,labels=['语文','数学','英语']) #设置每一角饼的标签 plt.title('第1小学各学科成绩占比',fontsize=12); #设置饼图的标题和标题字号

效果图如下:

是不是和维基百科搬运过来的饼图很相像?还比那个多了个标题,嘿嘿…但是前边说好的要显示比例标签呢?别急,其实可以设置的内容还有不少,不止是可以设置比例标签呢!

完善饼图

plt.figure(figsize=(8,8),dpi=80) #新建画布 plt.pie(data2.iloc[0,1:] #选取数据源 ,labels=['语文','数学','英语'] #增加标签 ,autopct='%.2f%%' #设置百分比精度 ,shadow=True #显示阴影,能够增加立体感 ,explode=[0.03,0.03,0.03] #设置饼图各个扇区之间的间隙 ,colors=['r','g','b']) #设置饼图各个扇区的颜色 plt.title('第1小学各学科成绩占比',fontsize=12);

每行代码的含义都以备注的方式解释明白了,以上只是常用的参数,当然还有一些不常用的参数并没有全都一一试验,给有好奇心的小可爱可以自行探索哈。

接下来查看效果的时间到了:

原谅我比较懒,没有探索更好看的配色,直接粗暴的用了RGB(逃走)。

一次绘制多个饼图

一次绘制多个饼图其实对饼图没什么要求,只是需要添加几个子图而已!所谓子图是相对于我们建立的整个画布而言的,整个画布相当与一张白纸,而子图就相当于是给整张白纸进行了分区,每个分区里边放上一个完整的图形:

pic2 = plt.figure(figsize=(8,8),dpi=80) #新建画布,由于需要在画布上增加子图,所以讲新建的画布赋值一个变量名 fig1 = pic2.add_subplot(2,2,1) #第一个子图(行数,列数,本子图位置) plt.pie(data2.iloc[0,1:] #选取数据源 第1小学各学科成绩 ,labels=['语文','数学','英语'] ,autopct='%.2f%%' #设置百分比精度 ,shadow=True #显示阴影,增加立体感 ,explode=[0.02,0.02,0.02]) #设置饼图各个扇区之间的间隙 # ,colors=['r','g','b']) #设置饼图各个扇区的颜色 plt.title('第1小学各学科成绩占比',fontsize=12)#设置子图的名称 fig2 = pic2.add_subplot(2,2,2) #第二个字图 plt.pie(data2.iloc[1,1:] #选取数据源,第2小学各学科成绩 ,labels=['语文','数学','英语'] ,autopct='%.2f%%' #设置百分比精度 ,shadow=True #显示阴影,增加立体感 ,explode=[0.02,0.02,0.02]) #设置饼图各个扇区之间的间隙 # ,colors=['r','g','b']) #设置饼图各个扇区的颜色 plt.title('第2小学各学科成绩占比',fontsize=12) fig3 = pic2.add_subplot(2,2,3) #第二个字图 plt.pie(data2.iloc[2,1:] #选取数据源,第3小学各学科成绩 ,labels=['语文','数学','英语'] ,autopct='%.2f%%' #设置百分比精度 ,shadow=True #显示阴影,增加立体感 ,explode=[0.02,0.02,0.02]) #设置饼图各个扇区之间的间隙 # ,colors=['r','g','b']) #设置饼图各个扇区的颜色 plt.title('第3小学各学科成绩占比',fontsize=12) fig4 = pic2.add_subplot(2,2,4) #第二个字图 plt.pie(data2.iloc[3,1:] #选取数据源,第4小学各学科成绩 ,labels=['语文','数学','英语'] ,autopct='%.2f%%' #设置百分比精度 ,shadow=True #显示阴影,增加立体感 ,explode=[0.02,0.02,0.02]) #设置饼图各个扇区之间的间隙 # ,colors=['r','g','b']) #设置饼图各个扇区的颜色 plt.title('第4小学各学科成绩占比',fontsize=12);

添加子图需要注意的是在新建画布的时候,需要给画布赋值一个变量名,方便添加子图。另外添加几个子图一般是通过子图的行数和列数来确定的,例如上边代码中是2行2列,即一共是4个子图。

效果图如下:

​ 代码中对颜色设定的部分被注释掉了,所以这里的颜色是默认的颜色,美商高的小可爱们可以自行探索颜色的搭配。

​ matplotlib之饼图,你学会了吗?

Python dataframe绘制饼图_基于Python的图表绘图系统matplotlib,“饼图“”你真了解吗?...相关推荐

  1. python音频实时频谱分析_基于python的音频设计及频谱分析

    74 Internet Technology 互联网 + 技术 一.引言 WAV 是 Microsoft 开发的一种声音文件格式,虽然它支持多种压缩格式,但是它通常被用来保存未压缩的声音数据(PCM ...

  2. python简单图形输出_基于 Python Matplotlib 模块的高质量图形输出

    Matplotlib 是一个由 John Hunter 等开发的,用以绘制二维图形的 Python 模块.它利用了 Python 下的数值计算模块 Numeric 及 Numarray,克隆了许多 M ...

  3. python人脸识别库_基于Python的face_recognition库实现人脸识别

    Python Python开发 Python语言 基于Python的face_recognition库实现人脸识别 一.face_recognition库简介 face_recognition是Pyt ...

  4. python多叉树遍历_基于Python的多叉树遍历算法

    [ 综直厘翹 S 赛理 ) 信息记录材料 2019 年 5 月第 20 卷第 5 期 基于 Python 的多叉树遍历算法 钱雨波 , 王金祥 ( 指导老师 ) ( 延边大学 吉林 延边 1 3300 ...

  5. python微信好友分析_基于python实现微信好友数据分析(简单)

    一.功能介绍 本文主要介绍利用网页端微信获取数据,实现个人微信好友数据的获取,并进行一些简单的数据分析,功能包括: 1.爬取好友列表,显示好友昵称.性别和地域和签名, 文件保存为 xlsx 格式 2. ...

  6. python参数化建模加工图_基于Python的ABAQUS层压板参数化建模

    唐维 康泽毓 杨婷 曾凤 蒋莉 摘要:为了提高层压板在ABAQUS仿真中建模的效率与准确性,提出利用Python语言对ABAQUS二次开发进行层压板参数化建模的方法.基于ABAQUS有限元软件,采用P ...

  7. python画素描画_基于python实现把图片转换成素描

    这篇文章主要介绍了基于python实现把图片转换成素描,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 导语: 你是否还在为当时年少时没有选择自己的梦 ...

  8. python电影推荐算法_基于Python的电影推荐算法

    原标题:基于Python的电影推荐算法 第一步:收集和清洗数据 数据链接:https://grouplens.org/datasets/movielens/ 下载文件:ml-latest-small ...

  9. python兼职平台信号处理_基于Python的数字信号处理初步

    作者:许欢 来源:EETOP 行者无疆(论坛usrname:ICNO.1) 的博客 Python 是目前的热门语言,一直觉得掌握一门编程语言对作为搞技术的来说还是很有必要的,结合工作中能用到的一些数据 ...

  10. python画多层网络_基于Python的多层网络可视化包Multinetx

    之前记录过基于R语言和Octave的多层网络可视化工具,但安装起来比较麻烦,发现Github上有基于Python的版本,提供了supra-adjency和多关系网络可视化,直接看:https://gi ...

最新文章

  1. 在Ubuntu 14.04 64bit上使用dig
  2. python递归题目_Python递归的问题?
  3. Scala中的/,%,++,--
  4. PHP zendframework phpunit 深入
  5. oAuth2.0 登录新浪微博 发送新浪微博 代码
  6. linux如何调试elf程序,Linux应用程序elf描述
  7. 用javascript动态调整iframe高度
  8. TIOBE 1 月编程语言排行榜:C 语言再度「C 位」出道!
  9. TensorFlow:曼德布洛特(Mandelbrot)集合
  10. 洛谷P1074 靶形数独 [搜索]
  11. 升级Spring Boot内嵌Tomcat版本
  12. 当前网络上迅雷各版本实际效果研究报告
  13. pointnet源码阅读:model
  14. LabVIEW串口调试助手
  15. 矩阵分解实现个性化推荐算法实践
  16. 微信小程序开发者工具 无法加载以下来源的扩展程序 问题解决
  17. R7 5800H 和 R5 5600H的差距大吗 哪个好
  18. VMware WorKstation虚拟机上 Linux 6最小化安装和基本网络环境配置
  19. 小程序 横向 纵向排列
  20. Poi导入excel(合并单元格)

热门文章

  1. 2015全国硕士研究生计算机考研真题(附答案)
  2. 甲乙丙丁四个人去商店每人买了一台计算机,2016国考行测备考:巧用矛盾速解题...
  3. 高通APQ8074(骁龙800)处理器
  4. 正在摧毁协议处理器_8种不良习惯正在摧毁您的电脑
  5. 【uniapp】小程序添加通过卡号查找银行名并添加绑定等逻辑
  6. npm查看源地址以及更换源地址
  7. 《数值分析》-- 高斯消去法与矩阵三角分解法(LU分解)
  8. 将ipone项目转到ipad平台以及开发同时支持这两个平台的项目
  9. Django项目实战——11—(文件存储方案FastDFS、容器化方案Docker)
  10. 发布博客支持关闭图片水印啦【CSDN产品周报第10期】