首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python---图解你的好友分布情况

python---图解你的好友分布情况

作者头像
sjw1998
发布2019-09-28 12:49:35
5350
发布2019-09-28 12:49:35
举报
文章被收录于专栏:孤独的S孤独的S孤独的S

很久之前做了查看微信的好友分布,但是碍于当时的数据可视化有一个巨坑,网上的教程都是互相转发,互相复制的,最后并不能实现操作,这次想要来填坑,所以记录一下。


关于用python来操作微信的库我们这里用的是wxpy,因为它是基于itchat的,有着微信登录,收发消息,搜索好友,数据统计等等的功能,相比itchat的一个好处就是不用重复扫码。

如果你用itchat去操作微信的话,你每次运行程序都要去扫二维码登录微信网页版,但是wxpy就不用,它将登录信息缓存了,可以不用每次运行程序时扫二维码。


首先第一步,给自己的电脑安装相关的库,这里要安装的是wxpy库。

这里可以直接pip install wxpy,即可,如果你用pycharm,也用了虚拟的环境的话,就在pycharm里的setting->project interpreter里去安装wxpy。

登录微信:

from wxpy import *  #导入wxpy库
bot = Bot(cache_path=True)  #登录,并且有缓存为true

简单的获取新消息,输出并发一份给文件传输助手:

bot.file_helper就是文件传输助手,

bot.self就是你自己的微信号,将消息发送给你自己。

这个recv_send_msg其实接收到消息后回复的函数,但是我们并没有返回值,所以就没有回复了。如果夸张一点这样就差不多可以知道别人撤回的消息内容,因为他会在你的程序下打印,并且会发送一份内容给你的文件传输助手,或者你自己的微信号。

获取指定微信号的消息:

获取你微信号的男女比例:

这里用到的数据可视化我用的是matplotlib,如果没有使用过的话,还是需要去下载一下库。

这里就是填坑的地方了。

获取微信好友的省份分布图:

from wxpy import *
bot = Bot(cache_path=True)
friends = bot.friends()
area = {}
for f in friends:
    if f.province not in area:
        area[f.province] = 1
    else:
        area[f.province]+=1
attr = area.keys()
value = area.values()

以上是就是获取的省份的数据了,以及省份拥有的人数

接着就是在地图上显示出来,看了一下百度上的教程,百分之90的都是0.5版本的pycharts,但是我们用pip安装的时候是最新版v1.0版本的pyecharts,因此百度上的方法都是不适用的。

在这里你要查看一下你的python版本和pyecharts的版本,然后决定用的是v0.5版本的还是v1版本

一般python3.6以上的版本都是v1版本的pycharts。

下面是v1版本的省份显示的完整代码。

from wxpy import *
bot = Bot(cache_path=True)
friends = bot.friends()
area = {}
for f in friends:
    if f.province not in area:
        area[f.province] = 1
    else:
        area[f.province]+=1
attr = area.keys()
value = area.values()

from pyecharts import options as opts
from pyecharts.charts import Map

print(area)
def map_base() -> Map:
    c = (
        Map()
        .add("人数", [list(z) for z in zip(attr, value)], "china")
        .set_global_opts(title_opts=opts.TitleOpts(title="省份分布人数"))
    )
    return c
c = map_base()
c.render()

这个只是基础的显示,还有更多的细节没有添加,就直接给图加入两个数据,attr和value,然后修改一下map的名称而已的。如果想做更加灵活的操作可以去pyecharts的官网,获取相应的方法,很容易上手,十分便利。

上面代码运行完后,你的项目文件夹下会出现一个html文件

打开即可看到结果

这样子就可以看到你的微信好友在全国的省份分布,并且知道分布的人数。


pyecharts的官网:

https://pyecharts.org/#/zh-cn/intro

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 孤独的S 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档