点击蓝字
关注我们
饼图一般用于表达部分与整体的关系,在python中使用matplotlib库绘制饼图使用plt.pie()函数,下面用该函数简单绘制一个饼图:
import matplotlib.pyplot as pltplt.rcParams['font.family']=['KaiTi']plt.figure(dpi=120)label=['书籍','衣物','食物','鞋子','其它']money=[560,80,109,300,200]plt.pie(money,labels=label)plt.show()

第3行代码设置了饼图的像素,dpi值越大,像素越大。
plt.pie()函数的参数较多,下面一一介绍。
plt.pie()函数参数详解
本节对参数的介绍不统一列出,分开来一个一个慢慢细品。
autopct
该参数的作用是在饼图各扇形中显示百分比,一般设置为'%.nf%%'的形式,%f表示该百分比是一个浮点数,%与f之间加'.n'表示保留n位小数,后面两个百分号显示一个百分号。(一个%表示转义字符,比如上节用的%s,两个%才能输出一个%)
下面更改上述代码的第8行plt.pie()函数,其它代码不变:(下同)
plt.pie(money,labels=label,autopct='%.1f%%')

explode
该参数用于设置各扇形离圆心中心的距离,值类型一般为列表,0表示不离开圆心,>0表示离开圆心,值越大离得越远。
plt.pie(money,labels=label,autopct='%.1f%%',explode=[0,0,0.1,0,0])

explode列表内有5个值,第3个值是0.1,其余都是0,第3值对应label列表中的第3个值是食物,所以食物对应的扇形离开圆心,形成被切出来的感觉。
colors
设置饼图各部分的颜色,一般值为列表类型。
c=['pink','yellow','grey','green','red']plt.pie(money,labels=label,autopct='%.1f%%',explode=[0,0,0.1,0,0],colors=c)

如果对颜色不敏感的同学建议不设置colors参数,让系统来帮我们设置为默认值就好,否则颜色搭配不好看的话,影响整体美观。
shadow
该参数用于设置饼图各部分是否有阴影效果,默认值是False,即没有阴影效果,也可手动设置为True。
plt.pie(money,labels=label,autopct='%.1f%%',explode=[0,0,0.1,0,0],shadow=True)

跟上图作对比,有没有看出阴影效果?
startangle
该参数设置起始绘制饼图的角度,默认为从 x 轴正方向逆时针画起,如设定 =90 则从 y 轴正方向画起。
plt.pie(money,labels=label,autopct='%.1f%%',explode=[0,0,0.1,0,0],shadow=True,startangle=90)

注意观察上一个图中的书籍那个扇形,有一条边是水平的,也就是X轴的正方向,而本图将startangle设置为90后,书籍所对应的扇形边从Y轴的正方向开始逆时针绘制。
所以饼图的绘制是依据代码中label列表的顺序依次从startangle的起始角度,逆时针绘制的。
counterclock
刚刚才说过饼图的绘制是逆时针绘制,有没有办法使其顺时针绘制呢,方法来了,就是把counterclock设置为False。当然这个参数的默认值是True。
plt.pie(money,labels=label,autopct='%.1f%%',explode=[0,0,0.1,0,0],startangle=90,counterclock=False)

观察这个图,饼图从Y轴正方向开始沿顺时针方向绘制,所以书籍对应的扇形占据在整个圆的右半部分。再观察上一个图,书籍对应的扇形占据在整个圆的左半部分,你就明白了。
plt.pie()函数的参数有点多,本节先说到这,其它的参数下节分解!
THE END




