想知道你的微信好友中男多,还是女多,还是未知性别的多?请看下面的方法。
一, 实现思路:
1,遍历获取微信好友性别,并统计出性别;
2,利用matplotlib生成好友性别饼图;
3,给图添加文字;
二,引用到的库:
1,itchat;
2,collections中的Counter;
3,matplotlib中的pie,text,savefig;
三,贴成品效果图
四,源代码
def getFrinendSex():#获取好友性别
auto_login(hotReload=True)
a=get_friends()
ls=[]
for i in a:
ls.append(i['Sex'])#性别字典键
a=['男','女','未知']
b=dict(zip(a,Counter(ls).values()))#counter统计列表中代表性别的元素(0,1,2)的个数,并替换成指定的列表a
shareN=[v/sum(b.values()) for v in b.values()]#计算各类别占比,形成列表
plt.figure(figsize=(6.4,6.4),facecolor='b')
plt.pie(x=shareN,radius=1.5,labels=a,pctdistance=1.2,labeldistance=0.8,colors=['cornflowerblue','violet','lightgreen'])
plt.pie(x=[1],radius=0.9,colors='w')#叠加一个空白的Piel图,形成环形
plt.rcParams['font.sans-serif'] = ['SimHei']#中文标签需要这个字体才能显示
plt.text(-0.7,-0.1,'微信好友性别比例',fontsize=24)#向中间空白填充此词组
plt.savefig('RawenWechatFriendSex.jpg',dpi=100)