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

46854ef8ba8bc27a68c67a2f2d3574e0.png

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

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

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

8fe83bc85798961f100329475efb3223.png

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

画一个饼图

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

8acf7b25ee3e657dbbac0c4f3268f095.png

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

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

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

效果图如下:

9c3cc518780bc2616317d2b6b5dafe7f.png

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

完善饼图

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);

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

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

8b7e53ed396860c05d8760090f0daa2d.png

原谅我比较懒,没有探索更好看的配色,直接粗暴的用了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个子图。

效果图如下:

1a7cc8a986ab9ad80f44731866af6d0b.png

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

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

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值