本文经授权转载至公众号 Python 知识圈

未经授权 严禁二次转载

阅读文本大概需要 5 分钟

技术群里一位读者微信私聊我,问我能不能统计下微信好友信息并以文件形式保存。其实,以前也写过类似的文章,一篇是微信好友性别统计,一篇是制作好友签名的词云图。比较分散,今天就索性把他们整合一下,一次性完成制作好友信息 csv 表格、性别统计饼图、昵称词云图、个性签名词云图、好友城市地区分布柱形图。

效果图

以下是本次程序运行后生成的信息图。(源码获取方式文末已给出)

1、好友信息表格

csv 文件中包括昵称、备注名称、性别(1 表示男,2 表示女,0 表示没有填写性别信息)、个性签名、省份、城市。第一条信息是自己的信息。

2、好友性别统计饼状图

此图根据收集的好友信息的性别进行统计比例,图中看到我的微信好友中男性还是占大多数的,也有一部分伙伴不愿意透露自己的性别。

3、好友昵称词云图

对微信好友的昵称收集进行分词后做成词云图,图中字体越大表示出现的次数越多。可以看到类似[记忆][初见][开心][温暖]等类似的词语出现频率比较高,看来好友们大都具有怀旧情节,但比较可怕的是[加班]这个词语竟然也出现次数较多,告诉我,你们是不是天天 996 啊

4、好友个性签名词云图

对微信好友的个性签名收集进行分词后做成词云图,图中字体越大表示出现的次数越多。人生、岁月、生命、努力、学习、梦想等是我微信好友签名的主旋律,看来大家都是积极向上的乐观派。

为什么都这么乐观呢?

因为我们都知道今天解决不了的事情,不能着急,不能慌,因为明天你可能也解决不了!

5、好友主要城市分布柱形图

对微信好友资料中填写的城市或地区进行统计,图中为了展示效果,我去掉了地区个数小于 5 个的地区数据。

项目环境

语言:Python

编辑器:Pycharm

导包

需要导入的主要包如下:itchat:Python 实现调用微信接口的第三方模块。

jieba:分词库,用于制作词云图前的分词。

matplotlib:画词云图需要用到。

wordcloud:画词云图需要用到。

pyecharts:用于画柱形图和饼状图。

代码分析

代码结构由 7 部分组成,收集好友信息、整合信息、保存为 csv 文件、制作性别统计饼图、制作昵称词云图、制作个性签名词云图、制作好友城市地区分布柱形图。下面对这 7 部分进行分析讲解。

收集信息

通过 itchat 库获取所有微信好友信息并进行整理,并将好友信息一一对应打包成元组,主要代码如下。

整合信息

把收集的信息整合成字典形式,方便之后对信息进行更方便的提取,主要代码如下。

保存csv文件

将上面的字典信息保存为 csv 文件,保存文件的方法之前项目也经常用到,在此不再赘述,主要代码如下。

制作性别统计饼图

在上面收集的信息中遍历好友性别信息,为 1 时,男性数量加 1,为 2 时,女性数量加 1,其他就是表示没填写性别信息的。调用 pyecharts 库中的 Pie 方法制作饼图,生成的是一个 html 文件,打开此文件就会显示统计饼图。此文件保存目录需自己指定目录,不然会报错,代码如下。

制作昵称词云图

从上面获取的信息中提取所有好友的昵称信息,进行分词。制作词云图的背景图需要指定详细的本地路径。对词云图的参数进行设置,词云图里的字体 font_path 可以更改成自己喜欢的字体,Windows 电脑一般在系统盘\Windows\Fonts 目录下,右键点击你要设置的字体查看属性就可以看到该字体的名称。

生成的词云图我保存在该项目代码的同一目录下,主要代码如下。

制作个性签名词云图

个性签名词云图和昵称词云图的代码几乎一样,只是从上面信息取的是个性签名信息做成词云图而已。代码中保存的词云图名称改成和昵称词云图不同即可,不然会覆盖保存。当然你可以把制作词云图的背景图换一个,由于代码几乎一样,就不做展示了。

制作好友城市分布图

提取信息中的城市或地区信息,去除没填写地区或城市的空白字符。对地区信息进行统计,为了展示效果,我去掉了所在地区个数在 5 个以下的情况,因为城市太多,图会显得很臃肿。调用 pyecharts 库中的 Bar 方法制作柱形图,生成的也是一个 html 文件,和上面制作性别比例饼图一样。html 文件保存目录需自己指定目录,代码如下。

后记

通过数据分析和可视化图形展示,我发现的秘密是:我的微信好友大部分都是积极向上、努力奋斗、以梦为马的伙伴,比我们优秀的人都在努力,我们没有任何借口去敷衍。

python微信好友分析源代码_搞事情了 | 教你用Python分析微信好友信息(内附完整代码)...相关推荐

  1. 搞事情了 | 教你用Python分析微信好友信息(内附完整代码)

    戳上方蓝字 "程序猿杂货铺" 关注我 并 置顶星标! 你的关注意义重大! 本文经授权转载至公众号 Python 知识圈 未经授权 严禁二次转载 阅读文本大概需要 5 分钟 技术群里 ...

  2. 南通大学python期末考试试卷答案_南通大学自动评教脚本(python)

    临近期末我等学沫都在紧张的进行着复习(预习),本来时间就不多,居然还让我们去评教万一因为这点时间我们挂科了咋办,于是乎用半生不熟的python写个自动评教的脚本. 一,具体分析: 我们先来评一个抓包来 ...

  3. opengl实现三维动画简单代码_使用Python简单实现马赛克拼图!内附完整代码

    今天小编带大家使用python简单实现马赛克拼图,内容比以往会稍长一些,各位看官老爷可以慢慢细读,若有不足之处还望请斧正,闲话不多说,请看文章. 先看原图: 效果图: 思路: 拼图的原理其实很简单,就 ...

  4. python深度学习include框架_搞事情。《用Python实现深度学习框架》已出版上架。...

    我和 @张觉非 合作的<用Python实现深度学习框架>一书已经由人民邮电出版社出版上市了.写作本书的缘由,是2017年11月我加入了360,开始负责以机器学习平台为中心的AI技术设施的研 ...

  5. 用python画卡通人物柒_追忆童年,教你用Python画出儿时卡通人物

    大家好. 又到一年一度的国际儿童节,作为逢节必过的程序猿,怎么可以放过这个学习技能的机会呢? 于是,今天我们来学习 Python 的 Turtle 库绘制童年的卡通人物,一起做回年轻的那个少年. Tu ...

  6. 一个数里有那些约数用c++怎么做_两数的最大公约数你会求吗?(内附完整算法代码)...

    两个数的最大公约数怎么求? 思考题目的同时,我在这也顺便发出三个灵魂疑问? 什么又是更相减损法? 什么又是辗转相除法? 什么又是欧几里得算法? 不懂没关系,往下看 要解决两数的最大公约数问题?,你首先 ...

  7. python代码手机壁纸_Python制作微信好友背景墙教程(附完整代码)

    引言 前段时间,微信朋友圈开始出现了一种晒照片新形式,微信好友墙,即在一张大图片中展示出自己的所有微信好友的头像. 效果如下图,出于隐私考虑,这里作了模糊处理. 是不是很炫,而且这还是独一无二的,毕竟 ...

  8. Python数据可视化:2018年北上广深空气质量分析(附完整代码)

    ♚ 法纳斯特,Python爱好者,喜欢爬虫,数据分析以及可视化. 就在这周偶然看到一个学弟吐槽天津的空气,不禁想起那段厚德载雾,自强不吸的日子. 无图无真相,下图为证. 左边的图是去年2月份的时候,这 ...

  9. Python人脸识别黑科技(二):教你使用python+Opencv完成人脸解锁

    继上一篇"Python人脸识别黑科技(一):50行代码运用Python+OpenCV实现人脸追踪+详细教程+快速入门+图像识",那么今天我们来讲关于使用python+opencv+ ...

最新文章

  1. 作为软件工程师,你必须知道的20个常识
  2. 如何阅读AI顶会论文,搭建深度学习知识体系框架?
  3. 5g网络架构_【5G网络架构】系列之二:5G基站—gNodeB。为什么叫gNodeB?取个名而已,需要理由吗?...
  4. 使用RSS订阅喜欢的微博博主
  5. echarts的词云图表类型有哪些_数据可视化之常见12种图表类型分析
  6. MyGeneration的NHibernate代码生成模版
  7. [html] 举例说明锚点定位有什么作用?
  8. 王建宙:中国移动还未与苹果就iPhone达成协议
  9. 捕鱼分鱼、出售鱼、平分七筐鱼
  10. Vue.js 中取得后台原生HTML字符串 原样显示问题的解决方法
  11. ESP32 M5 超级问卷星:轻松收集数据
  12. 什么是爬虫?你了解吗,能干什么,怎么用,让你了解本质
  13. Python-QQ聊天记录分析-jieba+wordcloud
  14. Java实现第九届蓝桥杯第几个幸运数字
  15. 算24(递归)--算法学习
  16. 获取微信昵称乱码php,Android 微信登录昵称乱码问题,及获取微信用户信息
  17. WIN10桌面任务栏消失变黑色的解决方法
  18. Allegro原理图反标教程
  19. C语言实现飞翔的小鸟小游戏
  20. XX系统可用性易用性

热门文章

  1. Vivado IP核生成设置
  2. Xilinx FFT IP core V9.0的介绍和使用
  3. 高校复试计算机英语文献翻译,专业文献英语翻译复试.pdf
  4. vscode进行远程服务器 An SSH installation couldn't be found、
  5. 随便创作的文件加密算法不知谁人能破解
  6. spring mvc dubbo ios android整合cms内容发布平台
  7. ListView使用技巧
  8. EMC virtual provisining and fast vp
  9. 【Ethereum】以太坊ERC20 Token标准完整说明
  10. 【Android】4.3 屏幕布局和旋转