用 Python 基于 pyecharts 对微信好友(性别,地域)进行分析,并数据可视化

代码我是在anaconda的jupyter notebook里编写运行的

需要安装的库

在cmd里安装

pip install wxpy
pip nstall pyecharts

wxpy 在 itchat 的基础上,通过大量接口优化提升了模块的易用性,并进行丰富的功能扩展。

pyecharts 是一个用于生成 Echarts 图表的类库。Echarts 是百度开源的一个数据可视化 JS 库。用 Echarts 生成的图可视化效果非常棒,pyecharts 是为了与 Python 进行对接,方便在 Python 中直接使用数据生成图。使用pyecharts可以生成独立的网页,也可以在flask、django中集成使用。

一、效果图

1、微信好友性别分布情况

在这里插入图片描述

2、微信好友地域分布情况

在这里插入图片描述

二 、微信好友性别分布情况代码详解

from wxpy import Bot	## 导入模块
bot = Bot()	# 初始化机器人,扫码登陆

运行以上代码,然后用你的微信扫码登录,登录成功的界面:
在这里插入图片描述

friends = bot.friends()	#获取微信好友信息
id2sex = {1:'男性',2:'女性',0:'其他'}	#把id转换成性别
index = [id2sex[i.sex] for i in friends]
num=[index.count(i) for i in id2sex.values()]	#统计数据
print(id2sex.values())
print(num)

运行代码看到以下结果,男性有77个,女性有105个,有16个好友没有设置性别
在这里插入图片描述
利用以上获得的数据用饼图展示出来

from pyecharts.charts import Pie
import pyecharts.options as opts
pie = (
    Pie(init_opts=opts.InitOpts(width='720px',height='320px'))	#调整饼图画布大小
    .add(series_name='', data_pair=[(j, i) for i, j in zip(num, id2sex.values())],
        radius=['30%','75%'])#不添加是饼图,添加radius=['30%','75%']是环图,
)
pie.render_notebook()

运行代码就可得到效果图了
在这里插入图片描述

三 、微信好友地域分布情况代码详解

在上面的代码基础上添加

citys=[i.city for i in friends if i.city!='']	#获取设置好友不为空的城市名
city_num = {i:citys.count(i) for i in list(set(citys))if citys.count(i)>1}	#获取城市大于1的城市数据
print(city_num)

运行代码结果:
在这里插入图片描述
利用以上获得的数据用中国地图展示出来

from pyecharts.charts import Geo,Map
import pyecharts.options as opts
from pyecharts.globals import ChartType
(
    Geo(init_opts=opts.InitOpts(width='600px',height='500px'))
    .add_schema(maptype='china')	#图表的类型是中国的地图
    .add('',[list(z) for z in city_num.items()],添加相应的数据
    		type_=ChartType.HEATMAP)	#绘制的类型是热力图
    .set_global_opts(visualmap_opts = opts.VisualMapOpts())	#显示地图
).render_notebook()

运行代码就可得到效果图了
在这里插入图片描述
因为我的好友大部分都是广东的。

发布了33 篇原创文章 · 获赞 13 · 访问量 2765

猜你喜欢

转载自blog.csdn.net/weixin_44947339/article/details/104178720
今日推荐