3.8 绘制饼状图
前言:
饼图很紧凑,看上去很有美感,但是它们也因为难以对数量进行比较而备受批评。饼图的另一个不好的特征是它以特定角度(视角)的方式和一定颜色的扇形展示数据,这会使我们的感觉有倾向性,从而影响我们对于所呈现数据得出的结论。
- 饼图在很多方面很特别,最重要的一点是它显示的数据集合加起来必须等于100%,否则它就是无意义的、无效的。
- 下面我们来看一个分裂式饼状图的示例
"""
绘制分裂饼状图
"""
import numpy as np
import matplotlib.pyplot as plt
#make a square figure and axes
# plt.figure(1, figsize=(6, 6))
p1=plt.subplot(1,2,1)
ax= plt.axes([0.1, 0.1, 0.8, 0.8])
# plt.axis('equal')
#the slices will be ordered
#and plotted counter-clockwise
labels='Spring','Summer','Autumn','Winter'
#fraction are either x/sum(x) or x if sum(x)<=1
x=[30,45,15,10]
#explode must be len(x) sequence or None
explod=(0.1,0.1,0.1,0.1)
# wedgeprops='dict(width=0.1)','dict(width=0.1)','dict(width=0.1)','dict(width=0.1)'
colors='#A7D67F','#94C6DC','#E2A389','#FFCC80'
p1.pie(x,explode=explod,labels=labels,autopct='%1.1f%%',startangle=67,colors=colors,
shadow=True)
p1.set_title('the explod pie')
shadow='True','False','False','False'
explod1=(0.1,0,0,0)
# plt.figure(1, figsize=(6, 6))
p2=plt.subplot(1,2,2)
p2.pie(x,explode=explod1,labels=labels,autopct='%1.1f%%',startangle=67,colors=colors,
shadow=shadow,wedgeprops=dict(width=0.6))
p2.set_title('the loop pie')
# plt.title('Rainy days by season')
plt.legend(loc='upper right')
plt.pie(x,explode=explod1,labels=labels,autopct='%1.1f%%',startangle=67,colors=colors,
shadow=shadow,wedgeprops=dict(width=0.6))
plt.show()
shadow
的值是布尔值:是否给饼图添加阴影效果- 如果没有指定 startangle,扇区将从 x 轴(角度 0)开始逆时针排列;如果指定atartangle的值为90,饼图将从y轴开始。
有关饼状图的一些参数的含义扩展
- labels=[] 用于设置对应数据的标签
- labeldistance:设置标签距离圆心额距离,
- autopct=’%1.1%%’ 设置数据以%显示【%1.1f:保留一位小数;%1.2f保留两位小数】
- pctdistance:设置比例文字距离圆心的距离
- colors:设置每一块的颜色