30 行代码绘出你的微信朋友统计图 – Python量化投资

30 行代码绘出你的微信朋友统计图

项目环境:python 3

环境安装

通过下面命令安装 itchat:

pip install itchat

通过下面命令安装 matplotlib:

pip install matplotlib

Matplotlib 是一个 Python 的 2D 绘图库,它以各种硬拷贝格式和跨平台的交互式环境生成出版质量级别的图形。

先给大家展示下成果图:


image

image.gif

程序结构:

  1. 登录微信;

  2. 统计出微信里好友男女人数;

  3. 根据第 2 步统计的人数画出柱形图。
    登录微信

itchat.auto_login(hotReload=True)

第一次运行程序需要微信扫码登录,这里直接调用 auto_login 方法传入值为 True 的hotReload。该方法会生成一个静态文件 itchat.pkl,用于存储登陆的状态。这样即使程序关闭,一定时间内重新开启也可以不用重新扫码。

统计人数

用 get_friends 获取所有好友信息。
循环统计时从 1 开始,因为 friends[0] 是自己的信息。

friends=itchat.get_friends(update=True)[0:]  #获取所有好友信息  
male = female = other =0
for i in friends[1:]:
    sex=i["Sex"]
    if sex==1:
        male+=1
    elif sex==2:
        female+=1
    else:
        other+=1
total=len(friends[1:])

再打印出统计比例:

print("男性好友: %.2f%%" % (float(male)/total*100) + "\n" +
"女性好友: %.2f%%" % (float(female) / total * 100) + "\n" +
"不明性别好友: %.2f%%" % (float(other) / total * 100))

画图
设置 x 轴、 y 轴 和标题的名称,定义柱形图的颜色,最后通过 plt.show显示出来。

'''
遇到不懂的问题?Python学习交流群:821460695满足你的需求,资料都已经上传群文件,可以自行下载!
'''
plt.xlabel("sex")
plt.ylabel("count")
plt.title("Gender statistics")
a=plt.subplot(1,1,1)
plt.bar(10, male, facecolor='red', width=3, label='male')
plt.bar(15, female, facecolor='yellow', width=3, label='female')
plt.bar(20, other, facecolor='blue', width=3, label='other')
plt.legend()
plt.show()

这样微信好友的统计图就完成了,当然,这只是 itchat 冰山一角的功能,还有很多有意思的功能等着我们去挖掘。

https://www.jianshu.com/p/aa8dca6c6545

「点点赞赏,手留余香」

    还没有人赞赏,快来当第一个赞赏的人吧!
0 条回复 A 作者 M 管理员
    所有的伟大,都源于一个勇敢的开始!
欢迎您,新朋友,感谢参与互动!欢迎您 {{author}},您在本站有{{commentsCount}}条评论