| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> Python知识库 -> Python 使用itchat获取好友的信息 -> 正文阅读 |
|
[Python知识库]Python 使用itchat获取好友的信息 |
itchat这个库多年前也使用过,目前还有可以正常使用,周末休息,就再次测试一下,统计我的好友性别占比和所在城市的占比。使用matplot 绘制图像,并存储为图片文件。 1. 好友的性别占比 2. 好友所在城市分布 导出引用的库: import itchat import matplotlib.pyplotas plt import os itchat.auto_login(hotReload=True)# 避免每次都登录 itchat.dump_login_status() # 1. 获取好友信息 friends = itchat.get_friends(update=True)[:] # 2. 获取好友的性别占比,绘制饼图 man =0 woman =0 other =0 total =len(friends[1:]) for finfo in friends[1:]: sex = finfo[‘Sex’] if sex ==1: man +=1 elif sex ==2: woman +=1 else: other +=1 # 绘制饼图 man_ratio =int(man)/total *100 woman_ratio =int(woman)/total *100 other_ratio =int(other)/total *100 plt.rcParams[‘font.sans-serif’] = [‘SimHei’] plt.rcParams[‘axes.unicode_minus’] =False plt.figure(figsize=(5, 5)) sex_li = [‘男’, ‘女’, ‘其他’] radius = [0.01, 0.01, 0.01] colors = [‘red’, ‘yellowgreen’, ‘lightskyblue’] proportion = [man_ratio, woman_ratio, other_ratio] plt.pie(proportion, explode=radius, labels=sex_li, colors=colors, autopct=’%.2f%%’)# 绘制饼图 # 加入图例 loc =? ‘upper right’ 位于右上角 bbox_to_anchor=[0.5, 0.5] # 外边距 上边 右边 borderaxespad = 0.3图例的内边距 plt.legend(loc=“upper right”, fontsize=10, bbox_to_anchor=(1.1, 1.1), borderaxespad=0.3) # 绘制标题 plt.title(‘微信好友性别比例’) # 展示 plt.show() # 3. 统计好友所在城市的数量,绘制柱状图 prov_dict, city_dict = {}, {} for fri_info in friends[1:]: prov = fri_info[‘Province’] city = fri_info[‘City’] if provand provnot in prov_dict.keys(): prov_dict[prov] =1 elif prov: prov_dict[prov] +=1 if cityand citynot in city_dict.keys(): city_dict[city] =1 elif city: city_dict[city] +=1 # 区域Top15 prov_dict_top15 =sorted(prov_dict.items(), key=lambda x: x[1], reverse=True)[0:15] # 城市Top15 city_dict_top15 =sorted(city_dict.items(), key=lambda y: y[1], reverse=True)[0:15] prov_nm, prov_num = [], [] # 省会名 + 数量 for prov_data in prov_dict_top15: rov_nm.append(prov_data[0]) prov_num.append(prov_data[1]) colors = [’#00FFFF’, ‘#7FFFD4’, ‘#F08080’, ‘#90EE90’, ‘#AFEEEE’, ‘#98FB98’, ‘#B0E0E6’, ‘#00FF7F’, ‘#FFFF00’, ‘#9ACD32’, ‘#6ACD32’, ‘#3ACD32’, ‘#1ACD32’, ‘#2ACD32’, ‘#7ACD32’] plt.rcParams[‘font.sans-serif’] = [‘SimHei’] plt.rcParams[‘axes.unicode_minus’] =False index =range(len(prov_num)) plt.bar(index, prov_num, color=colors, width=0.5, align=‘center’) plt.xticks(range(len(prov_nm)), prov_nm) # 横坐轴标签 for x, y in enumerate(prov_num): # 在柱子上方1.2处标注值 plt.text(x, y +1.2, ‘%s’ % y, ha=‘center’, fontsize=10) plt.ylabel(‘省会好友人数’) # 设置纵坐标标签 prov_title =‘微信好友区域Top15’ plt.title(prov_title)# 设置标题 plt.savefig(‘微信好友区域Top15.png’)# 保存图片 plt.show() 运行正常。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/16 1:31:35- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |