1. 项目介绍

Python之所以强大是源于整体生态之强大。

在这个脚本中我们将会用到俩个库,分别是itchat和matplotlib。

  • itchat :一个开源的微信个人号接口,可以让微信与python进行交互。
  • matplotlib: Python 2D 绘图库,在这个项目中我们利用这个库来绘制数据分析图。

2. 脚本环境介绍

itchat 1.3.10

matplotlib 3.0.3

python 3.7.3

3. 项目代码

# -*- coding: utf-8 -*-  
import itchat
import matplotlib.pyplot as plt

itchat.login()
plt.rcParams['font.sans-serif'] = ['SimHei']   #解决matplolib图形库无中文字体
friends=itchat.get_friends(update=True)[0:]
male=female=unknown=0
for i in friends[1:]:                      # 遍历清点男女人数
    sex=i["Sex"]
    if sex==1:
        male+=1
    elif sex==2:
        female+=1
    else:
        unknown+=1

total=len(friends[1:])
male=round(float(male)/total*100,2)
female=round(float(female)/total*100,2)
unknown=round(float(unknown)/total*100,2)                 
explode = (0.05,0.05,0.05)        
colors = ['blue','red','yellow']       #饼图分饼颜色设置

labels=['男性','女性','未注明']
sizes=[male,female,unknown]
patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)

for t in l_text:
    t.set_size=(30)
for t in p_text:
    t.set_size=(20)
    
plt.axis('equal')
plt.legend()

print('您的好友一共有:'+ str(total))
print('其中男性有:'+str(male)+'%   女性有:'+str(female)+'%    未注明有: '+str(unknown)+'%')
plt.show()

4. 运行结果

result of itchat boys & girls count