python|python 玩转微信系列1 用饼图展示好友性别比例

0 . itchat itchat: 作者@LittleCoder 已经把微信的接口完成了,大大的方便了我们对微信的挖掘,以下的功能也通过itchat来实现。
安装 itchat : 终端运行如下命令:

pip install itchat

安装 charts: 用于将数据用图表展示
pip install charts

终端显示安装成功后,下面开始操作代码
【python|python 玩转微信系列1 用饼图展示好友性别比例】因为最终效果要用饼图显示,所以我这里的代码在jupyter notebook中编写运行,有关jupyter的内容,可以参考我的这篇笔记:@Jupyter
1 . 导入模块
#! /usr/bin/env python3 import itchat import charts

2 . 登录 获取好友列表
# 登录 itchat.login() # 获取好友列表 friends = itchat.get_friends(update=True)[0:] # 参数update如果不设置则默认读取本地

3 . 计算 男性、女性以及未写性别的friend个数
# 初始化计数器,有男有女,当然,有些人是不填的 male = female = other = 0 # 遍历这个列表,列表里第一位是自己,所以从"自己"之后开始计算 #1表示男性,2女性 for i in friends[1:]: print(i) sex = i["Sex"] if sex == 1: male += 1 elif sex == 2: female += 1 else: other += 1 # 总数算上,后边计算比例会用到 total = len(friends[1:])

4 . 显示表格
series =[{ 'type': 'pie', 'name': u'%s的微信好友性别比例' % (friends[0]['NickName']), 'data': [ [u'男性',float('%.2f' % (float(male) / total * 100))], [u'女性',float('%.2f' % (float(female) / total * 100))], [u'其他',float('%.2f' % (float(other) / total * 100))] ] }]

由于charts的格式是这样,所以各个键值(type,name,data)不能修改只能这样写
5 . 用一个饼图呈现
charts.plot(series, options={'title': {'text': u'%s的微信好友性别比例' % (friends[0]['NickName'])}}, show='inline')

最终显示效果如下:

python|python 玩转微信系列1 用饼图展示好友性别比例
文章图片
pie.jpg 本代码用python 3.5 mac环境下测试通过,本文只是简单的介绍了itchat的使用,还有更多的功能,各位童靴可以自己看api去扩展, 如有不足之处还请帮忙指正,多多交流,共同学习,共同进步

    推荐阅读