python使用微信设置-用Python来可视化微信好友
前言
最近在研究 pyecharts 的用法,它是 python 的一个可视化工具,然后就想着结合微信来一起玩
不多说,直接看效果:
环境配置
pip install pyecharts
pip install snapshot_selenium
pip install echarts-countries-pypkg
pip install echarts-china-provinces-pypkg
pip install echarts-china-cities-pypkg
pip install echarts-china-counties-pypkg
pip install wxpy
获取好友
主要是获取好友基本数据,用来做数据可视化
代码如下:
from wxpy import Bot, Chat
class Demo(Chat):
@staticmethod
def get_friend():
bot = Bot()
friends = bot.friends(update=True)
friend_data = []
for friend in friends:
if friend.sex == 1:
sex = "男"
elif friend.sex == 2:
sex = "女"
else:
sex = ""
friend_dict = {
"city": friend.city,
"province": friend.province,
"sex": sex,
"signature": friend.signature,
}
friend_data.append(friend_dict)
return friend_data
返回的是微信好友列表,包含好友城市,省份,性别和个性签名等数据。
地理坐标图
地理坐标系组件用于地图的绘制,支持在地理坐标系上绘制散点图,线集。
在 pyecharts 中地理坐标图主要是基于 Geo 模块
def geo_base():
city_data = get_data()
geo = Geo(init_opts=opts.InitOpts(theme="vintage"))
for city in city_data:
try:
geo.add_schema(maptype="china", itemstyle_opts=opts.ItemStyleOpts(color="gray"))
geo.add("微信好友分布地图", [city], type_="effectScatter", symbol_size=10)
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="微信好友分布地图"), )
except Exception as e:
print(e)
pass
# geo.render("geo.html")
make_snapshot(driver, geo.render(), "geo.png")
运行完之后会在当前目录生成一个 geo.png 的图片
该图片就是微信好友中国分布地图
热力图
热力图也是基于 Geo 模块
唯一的区别在 add 函数中 type 的为 heatmap
代码如下:
def heat_map():
city_data = get_data()
geo = Geo(init_opts=opts.InitOpts(theme="vintage"))
for city in city_data:
try:
geo.add_schema(maptype="广东", itemstyle_opts=opts.ItemStyleOpts(color="gray"))
geo.add("广东好友热力图", [city], type_="heatmap", symbol_size=10)
geo.set_series_opts(label_opts=opts.LabelOpts(is_show=False))
geo.set_global_opts(visualmap_opts=opts.VisualMapOpts(), title_opts=opts.TitleOpts(title="热力图"), toolbox_opts=opts.ToolboxOpts())
except :
pass
geo.render("heat.html")
运行之后的效果:
以上就是微信中的广东好友分布热力图,当然省份可以自主选择。
全国分布图
地图是基于 Map 模块进行扩展
主要用到函数是 add
def add(
# 系列名称,用于 tooltip 的显示,legend 的图例筛选。
series_name: str,
# 数据项 (坐标点名称,坐标点值)
data_pair: Sequence,
# 地图类型,具体参考 pyecharts.datasets.map_filenames.json 文件
maptype: str = "china",
# 是否选中图例
is_selected: bool = True,
# 是否开启鼠标缩放和平移漫游。
is_roam: bool = True,
# 当前视角的中心点,用经纬度表示
center: Optional[Sequence] = None,
# 当前视角的缩放比例。
zoom: Optional[Numeric] = 1,
# 自定义地区的名称映射
name_map: Optional[dict] = None,
# 标记图形形状
symbol: Optional[str] = None,
# 是否显示标记图形
is_map_symbol_show: bool = True,
# 标签配置项,参考 `series_options.LabelOpts`
label_opts: Union[opts.LabelOpts, dict] = opts.LabelOpts(),
# 提示框组件配置项,参考 `series_options.TooltipOpts`
tooltip_opts: Union[opts.TooltipOpts, dict, None] = None,
# 图元样式配置项,参考 `series_options.ItemStyleOpts`
itemstyle_opts: Union[opts.ItemStyleOpts, dict, None] = None,
)
代码如下:
def map_base():
province_data = province_list()
maps = Map()
maps.add("", province_data, "china")
maps.set_global_opts(title_opts=opts.TitleOpts(title="微信好友分布图"), visualmap_opts=opts.VisualMapOpts())
make_snapshot(driver, geo.render(), "map.png")
运行之后,就是生成文章开头所示的图片,是不是很有趣呀!
词云图
好友城市分布词云图
c = (
WordCloud()
.add("", city_list, word_size_range=[15, 50], shape="diamond", word_gap=10)
.set_global_opts(title_opts=opts.TitleOpts(title="diamond"))
)
make_snapshot(driver, c.render(), "world.png")
效果如下:
条形图
先来看下效果:
代码如下:
def bar_datazoom_slider() -> Bar:
city_data = get_data()
c = (
Bar(init_opts=opts.InitOpts(page_title="条形图"))
.add_xaxis([city[0] for city in city_data])
.add_yaxis("城市人数", [city[1] for city in city_data])
.set_global_opts(
title_opts=opts.TitleOpts(title="好友城市分布条形图"),
datazoom_opts=[opts.DataZoomOpts(orient="vertical")]
)
)
return c
最后,再提供大家微信头像另一种好玩的方式:
先看图:
除此之外,还能定制文字,将自己想制作的文字,输入即可!
后台回复 "image” 获取源码
公众号:Python编程与实战。欢迎关注!
了解更多内容,烦请关注本人公众号, Python编程与实战
python使用微信设置-用Python来可视化微信好友相关推荐
- python使用微信设置-用Python玩微信跳一跳黑科技详细使用教程
2017年的小尾巴上,微信推出了小游戏,其中跳一跳火遍大江南北,咱们可爱的程序猿哥哥直接用Python写了个自动跳一跳的程序,github地址:https://github.com/wangshub/ ...
- python微信朋友圈刷图_用python中的itchat可视化微信朋友圈
itchat是python与微信网页版连接的api,作为测试,博主利用itchat爬取了自己的微信并进行可视化 首先登录微信,定义函数用来储存好友信息 import itchat import mat ...
- 基于python实现安徽省天气预警信息地图可视化报警并推送信息至微信联系人
基于python实现安徽省天气预警信息地图可视化报警 import json import requests import simplejson from pyecharts import Map f ...
- AI基础:Python开发环境设置和小技巧
0.导语 本文总结了Windows下Python环境的安装,包括Anaconda.Jupyter notebook和Pycharm的安装和基本使用技巧,方便初学者搭建Python环境.这个是AI基础的 ...
- Python+Matplotlib+MiKTex设置标签字符串中任意字符格式
推荐图书: <Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),董付国,清华大学出版社,2020年6月第1次印刷,2021年12月第11次印刷,山东省一流 ...
- Python使用matplotlib设置pandas绘制的饼状图扇形标签
2021年全国高校Python课程高级研修班(线上) 中国大学MOOC"Python程序设计基础"第4次开课 推荐图书: <Python程序设计(第3版)>,(ISBN ...
- python微信自动发消息_Python使用微信itchat接口实现查看自己微信的信息功能详解...
Python使用微信itchat接口实现查看自己微信的信息功能详解 发布时间:2020-09-09 04:20:11 来源:脚本之家 阅读:134 本文实例讲述了Python使用微信itchat接口实 ...
- 【Python | X先生】从00-90后的微信昵称,发现如下规律。。。
本文目录 一.前言 一.前言 大家好,首先说明的是,这是一篇技术文,也是一篇not技术文,今天分享的是,当我获取了微信小程序英文取名的3500多个微信用户昵称.年龄段后,分析得到下面解果... 二.L ...
- python微信点赞脚本_Python爬取微信公众号评论、点赞等相关信息
微信公众号爬虫方案分析(爬取文艺相处公众号) 之前考虑过使用搜狗微信来爬取微信公众号信息,不过搜狗提供的数据有诸多弊端,比如文章链接是临时的,文章没有阅读量等指标,所以考虑通过手机客户端利用 Pyth ...
最新文章
- SpringMVC拦截器简单使用
- iMeta期刊12名编委入选科睿唯安2021年度高被引学者
- oracle pl sql示例,oracle PL SQL学习案例(一)
- 闲话WPF之二六(WPF性能优化点)
- 在终端执行 Python 代码的 6 种方法,原来还能这样!
- 60佳优秀的 Photoshop 网页制作教程【下篇】
- thinkphp 学习 (资料收集)
- Python raw_input 读取输入值 (转载)
- STM32F10x随笔(gcc+scons)
- 润乾报表使用问题总结
- 拓端tecdat|R语言如何解决线性混合模型中畸形拟合(Singular fit)的问题
- 各位有没有遇到过这样的问题?
- 硬盘分区 整G整数法(从1g到200g最精确的整数分区)
- 机器学习?有无监督、弱监督、半监督、强化、多示例学习是什么
- camera-radar fusinon paper 速递
- 基于Geomesa服务查询轨迹数据无法根据空间和时间范围进行查询的问题解决办法
- jsTree插件简介(四)
- 计算机主机机箱背后,2.8L的办公电脑?可以背在显示器后面的主机—你见过吗?...
- 入门UI设计一般要学习多久,学习哪些内容
- 角谷定理。输入一个自然数,若为偶数,则把它除以2,若为奇数,则把它乘以3加1。经过如此有限次运算后,总可以得到自然数值1。求经过多少次可得到自然数1。