python 玩转微信系列1 用饼图展示好友性别比例
2018-03-14 本文已影响69人
张东山
0 . itchat
itchat: 作者@LittleCoder 已经把微信的接口完成了,大大的方便了我们对微信的挖掘,以下的功能也通过itchat来实现。
安装 itchat : 终端运行如下命令:
pip install itchat
安装 charts: 用于将数据用图表展示
pip install charts
终端显示安装成功后,下面开始操作代码
因为最终效果要用饼图显示,所以我这里的代码在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')
最终显示效果如下:
pie.jpg
本代码用python 3.5 mac环境下测试通过,本文只是简单的介绍了itchat的使用,还有更多的功能,各位童靴可以自己看api去扩展, 如有不足之处还请帮忙指正,多多交流,共同学习,共同进步