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

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')

最终显示效果如下:


python 玩转微信系列1 用饼图展示好友性别比例_第1张图片
pie.jpg

本代码用python 3.5 mac环境下测试通过,本文只是简单的介绍了itchat的使用,还有更多的功能,各位童靴可以自己看api去扩展, 如有不足之处还请帮忙指正,多多交流,共同学习,共同进步

你可能感兴趣的:(python 玩转微信系列1 用饼图展示好友性别比例)