你的微信好友在哪里——使用python绘制好友分布热地图

写在前面

新的一周,一切顺利!上期文章中,小编和大家聊了一下python中操作Excel的一个第三方库xlsxwriter的一些具体细节,当然主要是围绕xlsxwriter库中的workbook进行展开,了解了这类命令下的相关操作命令。不过延续的介绍会在后续接着展开,本期文章中,小编将和大家聊一下怎么使用python去绘制你的微信好友的省份分布的热地图,进而了解你应该重点去发展哪里的朋友,好了,现在就赶快开始吧。

准备工作

上面四个库可以通过pip install直接安装,前三个库相信大家已经熟悉了,第四个库则是用来操作微信的。处理这四个库,还需要使用库中的Basemap函数,因此需要安装basemap库,然而这个库目前来说不适合采用pip install进行安装,所以小编这里主要讲一下这个库的安装流程。

可以说采用官方的安装方法相对有所繁琐,为了避免这种繁琐,小编在各种谷歌和论坛讨论之后得到了一种目前为止最简便的安装方法。首先在这里下载pypro和basemap的whl文件,请注意一定要下载与自己的电脑机型以及与自己安装的python版本相对应的版本,小编的电脑是64位机,python版本是3.6,所以下载了以下两个文件:

basemap-1.1.0-cp36-cp36m-win_amd64.whl

pyproj-1.9.5.1-cp36-cp36m-win_amd64.whl

下载完成之后,打开windows命令行(win+R),通过命令将工作路径转移到这两个文件的下载路径中,然后通过运行一下命令进行这两个库的安装:

这里一定要记住两点,安装顺序不能出错,必须先安装pyproj,然后安装basemap,另外注意在安装的时候千万不要少了后缀名,一旦你参照上文进行安装,那么基本可以安装成功,可以通过以下命令验证安装成功与否。

如果输入这条命令之后没有报错,则说明你已经正常安装了basemap库,下面就可以使用这个库进行热地图的绘制了。因为本文讲解怎么绘制微信好友的省份分布热地图,所以下面先介绍怎么获得微信好友的相关信息。在正式开始之前,小编先导入后文中需要使用的一些python库。

第一条命令用来登陆网页版微信,输入这条命令之后会弹出一个二维码,这时只需要使用手机扫一下便可以登陆网页版微信;第二条命令用来获得你的微信好友信息,因为这种方式获得的信息有点乱,所以使用第三条命令将其转换成pandas的数据框形式;如果你仔细看一下这个数据框便会发现其中存在33种相关的属性信息(小编对此也很惊讶,小编还以为好友信息无非就是昵称、省市信息以及签名之类的),然而真的不需要这么多信息,所以小编使用第四条命令获得了好友们的昵称以及省份信息,这已经足够小编后面的热地图绘制了。

在获得昵称和省份的相关数据之后,下面需要进行的是按照省份将人员进行汇总,玩过Excel的朋友都知道就是数据透视表,然而python只需要一句命令就可以完成这种汇总,主要采用下面代码:

第一行代码就是用来汇总数据的,并把汇总列命名为人员数量;而后的第二行代码是将数据集按照人员数量进行排序。然而有时我们也会添加一些国外的朋友,所以在省份中自然也就有了一些国外州郡的信息,小编这里需要仅仅提取国内省份的好友信息,因此有必要对上面的数据集进行再一步地选择。为了筛选的便利,小编这里创建了一个用于分割国内省份和国外省份的函数province_split()。

这样便完成了省份分割函数的创建,下面将其运用到上面的省份与人员数量数据集中,从而去获得国内的好友情况以及国外的好友情况。

第一行代码主要用来统计国内好友的省份,第二行代码获得这些省份的数据集;第三行代码用来获得国外好友的数据集。这样就完成了对于国内好友省份以及各省人数的汇总统计,接下来就是要按照人数的大小进行热地图的绘制了。因为各省好友人数分别悬殊太大,为了避免极大值的影响,这里将人数进行极差标准化,然后依据极差后的数据进行热地图的绘制。

至此完成了对于微信好友数据的整理,下面进入热地图的呈现环节。

然后将这一函数运用到好友的省份信息数据集中,接着讲修正后的好友信息与省份经纬度信息进行整合。

第一行代码用于对好友信息数据集的省份进行修正,第二行代码用于读入省份的经纬度信息数据(注意这里命令都是将下载文件的路径作为工作路径的,如果你有自己的喜好,完全可以调整工作路径,但是请确保下载的文件已经后面的shp文件等都在这个工作路径之下);第三行代码用于整合微信好友的省份分布数据与省份经纬度信息数据。既然数据已经完成了整合,那么接下来便开始进行数据的可视化吧。

通过运行以上命令,你就创建了一个好友省份分布热地图,下面是小编的好友分布省份分布情况。上面的shp文件请到小编博客下载。

微信好友分布热地图

从热地图中可以明确看出,小编的朋友主要集中在广东、湖北,这点完全可以解释,因为小编工作在广东,生在湖北,所以这两地的朋友自然会相对于其它地区多出很多。最后附上全文用于分析的代码,大家也可以到小编的Github中进行下载,请认准文件名称wechat_friends_heatmap.py。

后记

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180604G2024I00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券