当前位置: 首页 > 后端技术 > Python

基于Python的图表绘制系统Matplotlib,“饼图”,你真的看懂了吗?

时间:2023-03-25 20:55:32 Python

按照国际惯例,要引入的对象的定义写在最开头。这里,这是一张从维基百科上搬过来的饼图。对于图表的解释,请放心:饼图,或者饼状图,是一个分成若干扇区的圆形统计图表,用来描述各扇区之间的相对关系量、频率或百分比。在饼图中,每个扇形的弧长(以及圆心角和面积)与其代表的数量成正比。这些扇区加起来就是一个完整的圆。顾名思义,这些扇区形成了一个切饼状的图案。当然,文字解释永远不会像图片那样直观:这也是从维基百科偷来的英语人口分布饼图。说白了,这张图比较简单,你只能看到一个大概的比例,像后三张,你几乎看不出有多少差别,所以我们在画的时候尽量加上数量标签,这样你就可以看到哪里差距一目了然。画饼图图表的第一步是什么?当然,我们需要数据。所有的图表只是数据的一种呈现形式!好吧,让我们看看我们的数据是什么样子的:这是几所学校语文和数学的平均分。前五行数据,整个数据源包含21条记录,即21所学校的平均成绩信息。我们打算查看一所或几所学校的年级饼图。先画一个最简单的饼图看看效果:plt.figure(figsize=(8,8),dpi=80)#新建画布,因为饼图是原型,所以新画布是正方形的plt.pie(data2.iloc[0,1:]#选择数据源为第一小学成绩,labels=['Chinese','mathematics','English'])#设置每个角蛋糕的labelplt.title('第一小学各科年级比例',fontsize=12);#设置饼图的标题和标题字体大小如下:是不是和维基百科自带的饼图类似?标题还不止一个,呵呵……不过之前答应的刻度标签呢?别着急,其实可以设置的内容还有很多,不仅仅是比例标签可以设置!完美饼图plt.figure(figsize=(8,8),dpi=80)#新建画布plt.pie(data2.iloc[0,1:]#选择数据源,labels=['language','mathematics','English']#添加标签,autopct='%.2f%%'#设置百分比精度,shadow=True#显示阴影,可以增加立体效果,explode=[0.03,0.03,0.03]#设置饼图每个扇区之间的差距,colors=['r','g','b'])#设置饼图每个扇区的颜色plt.title('各扇区的比例eachsubjectinthefirstprimaryschool',fontsize=12);每一行代码的意思都以注释的形式解释清楚了。以上只是常用的参数。当然还有一些不常用的参数没有一一测试。好奇的小可爱可以自己探索。现在是检验效果的时候了:原谅我偷懒,没有探索更好的配色,直接粗暴的使用了RGB(转义)。Drawingmultiplepiechartsatatime一次绘制多个饼图其实对饼图没有要求,只需要添加几个子图即可!所谓子图是相对于我们创建的整个画布而言的。整个画布相当于一张白纸,子图相当于对整张白纸进行分区,每个分区放置一个完整的图形:pic2=plt.figure(figsize=(8,8),dpi=80)#新建画布,因为需要在画布上添加子图,所以给新画布赋一个变量名fig1=pic2.add_subplot(2,2,1)#第一个子图(第一个子图的个数rows,columns,positionofthissub-graph)plt.pie(data2.iloc[0,1:]#选择第一小学各科成绩作为数据源,labels=['Chinese','数学','英语'],autopct='%.2f%%'#设置百分比精度,shadow=True#显示阴影,增加立体感,explode=[0.02,0.02,0.02])#Set饼图每个扇区之间的差距#,colors=['r','g','b'])#设置饼图每个扇区的颜色plt.title('每个主题的比例在第一小学',fontsize=12)#设置子图名称fig2=pic2.add_subplot(2,2,2)#第二个subplotplt.pie(data2.iloc[1,1:]#选择数据源,二小各科成绩,labels=['Chinese','数学','英语'],autopct='%.2f%%'#设置百分比精度,shadow=True#显示阴影,增加立体效果,explode=[0.02,0.02,0.02])#设置饼图各扇区的间距#,colors=['r','g','b'])#设置饼图各扇区的颜色plt.title('各科目成绩在thesecondprimaryschoolProportion',fontsize=12)fig3=pic2.add_subplot(2,2,3)#第二个subplotplt.pie(data2.iloc[2,1:]#选择数据源,每个的结果三小科目,labels=['语文','数学','英语'],autopct='%.2f%%'#设置百分比精度比例,shadow=True#显示阴影,增加立体感,explode=[0.02,0.02,0.02])#设置饼图各扇区之间的间隙#,colors=['r','g','b'])#设置饼图各扇区颜色plt.title('三小各科成绩占比',fontsize=12)fig4=pic2.add_subplot(2,2,4)#第二个子图plt.pie(data2.iloc[3,1:]#选择数据源,小四各科成绩,labels=['语文','数学','英语'],autopct='%.2f%%'#设置百分比精度,shadow=True#显示阴影,增加立体效果,explode=[0.02,0.02,0.02])#设置每个扇区之间的间隙ofthepiechart#,colors=['r','g','b'])#设置饼图各扇区的颜色plt.title('四小各科成绩所占比例学校',fontsize=12);添加子图时需要注意的是,在新建画布时,需要给画布赋值一个变量名,方便添加子图。添加几个子图一般由子图的行数和列数决定。比如上面的代码,有2行2列,也就是一共有4个子图。效果图如下:代码中颜色设置部分已经注释掉,所以这里的颜色为默认颜色,美商高的萌娃们可以自行探索颜色的搭配。大饼matplotlib的图表,你学会了吗?