热线电话:13121318867

登录
2018-12-20 阅读量: 738
使用matplotlib绘制饼图

matplotlib是python里经常需要绘制图的一个库,今天说说我是怎么使用这个库绘制微信数据的饼图的:

def analyseSex(firends):

sexs = list(map(lambda x:x['Sex'],friends[1:]))

counts = list(map(lambda x:x[1],Counter(sexs).items()))

labels = ['Unknow','Male','Female']

colors = ['red','yellowgreen','lightskyblue']

plt.figure(figsize=(8,5), dpi=80)

plt.axes(aspect=1)

plt.pie(counts, #性别统计结果

labels=labels, #性别展示标签

colors=colors, #饼图区域配色

labeldistance = 1.1, #标签距离圆点距离

autopct = '%3.1f%%', #饼图区域文本格式

shadow = False, #饼图是否显示阴影

startangle = 90, #饼图起始角度

pctdistance = 0.6 #饼图区域文本距离圆点距离

)p

lt.legend(loc='upper right',)

plt.title(u'%s的微信好友性别组成' % friends[0]['NickName'])

plt.show()

这里简单解释下这段代码,微信中性别字段的取值有Unkonw、Male和Female三种,其对应的数值分别为0、

1、2。通过Collection模块中的Counter()对这三种不同的取值进行统计,其items()方法返回的是一个元

组的集合,该元组的第一维元素表示键,即0、1、2,该元组的第二维元素表示数目,且该元组的集合是排

序过的,即其键按照0、1、2 的顺序排列,所以通过map()方法就可以得到这三种不同取值的数目,我们将

其传递给matplotlib绘制即可,这三种不同取值各自所占的百分比由matplotlib计算得出。

0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子