技术点:数据分析matplotlib使用,微信接口模块itchat,数据统计
登录可以免费领取一万元
import itchat # 这个模块对微信公开的接口进行封装,大大方便了我们的使用
# 登录
itchat.login()
# 发送一条消息给文件助手
itchat.send('10000元', 'filehelper')
获取好友列表
import itchat
itchat.login()
itchat.send('10000元', 'filehelper')
friends = itchat.get_friends()
print(type(friends))
# friends的类型不是一个列表,但是可以使用切割
print(friends[0:5])
# friends里的对象第一个是你本人,有很多信息,我们只分析这个sex:性别
一个好友对象
[, 'UserName': 'xxx', 'City': '', 'DisplayName': '', 'PYQuanPin': '', 'RemarkPYInitial': '', 'Province': '', 'KeyWord': '', 'RemarkName': '', 'PYInitial': '', 'EncryChatRoomId': '', 'Alias': '', 'Signature': 'xxx', 'NickName': 'xxx', 'RemarkPYQuanPin': '', 'HeadImgUrl': 'xxx', 'UniFriend': 0, 'Sex': 1, 'AppAccountFlag': 0, 'VerifyFlag': 0, 'ChatRoomId': 0, 'HideInputBarFlag': 0, 'AttrStatus': 0, 'SnsFlag': 1, 'MemberCount': 0, 'OwnerUin': 0, 'ContactFlag': 0, 'Uin': xxx, 'StarFriend': 0, 'Statues': 0, 'WebWxPluginSwitch': 0, 'HeadImgFlag': 1}>]
统计性别数量
import itchat
# 先登录
itchat.login()
# 给一个好友发送消息
itchat.send('10000元', 'filehelper')
friends = itchat.get_friends()
# print(type(friends))
# print(friends[0:5])
male, female, other = 0, 0, 0
# 统计性别
for member in friends:
sex = member['S ex']
if sex == 1: # 男性+1
male += 1
elif sex == 2: # 女性+1
female += 1
else: # ...
other += 1
print(male, female, other)
数据可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。
画出一个初级饼图
# 使用饼图分析数据
# matplotlib: This is an object-oriented plotting library
# pytplot是一个与matplotlib交互的接口,他提供了绘图的方法,也就是说这个pyplot就是用来画图的
from matplotlib import pyplot as plt
# 准备一个绘画框架:指定图片的大小(英寸)和像素
plt.figure(figsize=(4, 5), dpi=100)
# 准备数据
male, female, other = 1, 1, 1
sex_count = [male, female, other]
# 传入数据
plt.pie(sex_count)
# 显示图片
plt.show()
完善饼图
一、添加性别描述
二、添加标题
三、显示比例
四、format更改主题描述
import itchat
from matplotlib import pyplot as plt
itchat.login()
friends = itchat.get_friends()
male, female, other = 0, 0, 0
# 统计性别
for member in friends:
sex = member['Sex']
if sex == 1: # 男性+1
male += 1
elif sex == 2: # 女性+1
female += 1
else: # ...
other += 1
print(male, female, other)
# 传入数据
# 准备一个绘画框架:指定图片的大小(英寸)和像素
plt.figure(figsize=(5, 5), dpi=100)
# 准备数据(添加性别文本描述)
sex_name = ['男', '女', '其他']
sex_count = [male, female, other]
# 传入数据
plt.pie(sex_count, labels=sex_name, autopct='%1.2f%%')
# 添加主题描述
plt.title('{}微信好友性别比例示意图'.format(friends[0]['NickName']))
# 显示图片
plt.show()