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

2023-11-16

代码我是在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()

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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

  • Google App Engine queue.yaml 无法在开发服务器中工作

    我无法让 dev appserver py 识别我使用queue yaml 创建的自定义队列 他们没有出现在http localhost 8000 taskqueue http localhost 8000 taskqueue 当我尝试向其
  • 如何在 Windows 64 上安装 NumPy?

    NumPy 安装程序在注册表中找不到 python 路径 无法安装 需要 Python 2 5 版本 但在注册表中未找到该版本 OK 我必须修改注册表吗 我已经修改了 PATH 以指向Python25安装目录 我可以检查一下您使用的是什么安
  • 递归 lambda 表达式可能吗?

    我正在尝试编写一个调用自身的 lambda 表达式 但我似乎找不到任何语法 或者即使它是可能的 本质上我想将以下函数传输到以下 lambda 表达式中 我意识到这是一个愚蠢的应用程序 它只是添加 但我正在探索可以在 python 中使用 l
  • 为什么删除临时文件时出现WindowsError?

    我创建了一个临时文件 向创建的文件添加了一些数据 已保存 然后尝试将其删除 但我越来越WindowsError 编辑后我已关闭该文件 如何检查哪个其他进程正在访问该文件 C Documents and Settings Administra
  • 保留完整姓氏,在 pandas 列中获取名字的首字母(如果有的话,还有中间名)

    我有一个 pandas 数据框 其中有一列表示几位网球运动员的姓氏和姓名 如下所示 Player 0 Roddick Andy 1 Federer Roger 2 Tsonga Jo Wilfred 我想保留完整的姓氏并获取姓名的首字母和中
  • 如何在Python中同时运行两只乌龟?

    我试图让两只乌龟一起移动 而不是一只接着另一只移动 例如 a turtle Turtle b turtle Turtle a forward 100 b forward 100 但这只能让他们一前一后地移动 有没有办法让它们同时移动 有没有
  • 没有名为 StringIO 的模块

    我有Python 3 6 我想从另一个名为 run py 的 python 文件执行名为 operation py 的 python 文件 In operation py I do from cStringIO import StringI
  • 结构差异 sudo() run('sudo 命令')

    我想知道函数之间有什么区别sudo 和函数run sudo u user smth 文档上有 sudo 在所有运行方式上都是相同的 除了它总是换行 调用 sudo 程序中的给定命令以提供超级用户 特权 但有几次 sudo cmd 提示我输入
  • 如果在等待“read -s”时中断,在子进程中运行 bash 会破坏 tty 的标准输出吗?

    正如 Bakuriu 在评论中指出的那样 这基本上与BASH 输入期间按 Ctrl C 会中断当前终端 https stackoverflow com questions 31808863 bash ctrlc during input b
  • Gspread如何复制sheet

    在 Stackoverflow 上进行谷歌搜索和搜索后 我想我找不到有关如何复制现有工作表 现有模板工作表 并将其保存到另一个工作表中的指南 根据文档 有重复表 https gspread readthedocs io en latest
  • 使用Python计算目录的大小?

    在我重新发明这个特殊的轮子之前 有没有人有一个很好的例程来使用 Python 计算目录的大小 如果例程能够很好地以 Mb Gb 等格式格式化大小 那就太好了 这会遍历所有子目录 总结文件大小 import os def get size s
  • Matplotlib 中 x 轴标签的频率和旋转

    我在下面编写了一个简单的脚本来使用 matplotlib 生成图形 我想将 x tick 频率从每月增加到每周并轮换标签 我不知道从哪里开始 x 轴频率 我的旋转线产生错误 TypeError set xticks got an unexp
  • Python:IndexError:修改代码后列表索引超出范围

    我的代码应该提供以下格式的输出 我尝试修改代码 但我破坏了它 import pandas as pd from bs4 import BeautifulSoup as bs from selenium import webdriver im
  • 将seaborn.palplot轴添加到现有图形中以可视化不同调色板

    将seaborn人物添加到子图中是usually https seaborn pydata org examples cubehelix palette html创建图形时通过传递 ax 来完成 例如 sns kdeplot x y cma
  • 在 keras 中保存和加载权重

    我试图从我训练过的模型中保存和加载权重 我用来保存模型的代码是 TensorBoard log dir output model fit generator image a b gen batch size steps per epoch
  • Mac OSX 10.6 上的 Python mysqldb 不工作

    我正在使用 Python 2 7 并尝试让 Django 项目在 MySQL 后端运行 我已经下载了 mysqldb 并按照此处的指南进行操作 http cd34 com blog programming python mysql pyth
  • 从 NumPy 数组到 Mat 的 C++ 转换 (OpenCV)

    我正在围绕 ArUco 增强现实库 基于 OpenCV 编写一个薄包装器 我试图构建的界面非常简单 Python 将图像传递给 C 代码 C 代码检测标记并将其位置和其他信息作为字典元组返回给 Python 但是 我不知道如何在 Pytho
  • 混淆矩阵不支持多标签指示符

    multilabel indicator is not supported是我在尝试运行时收到的错误消息 confusion matrix y test predictions y test is a DataFrame其形状为 Horse
  • 从 pandas DataFrame 中删除少于 K 个连续 NaN

    我正在处理时间序列数据 我在从数据帧列中删除小于或等于阈值的连续 NaN 时遇到问题 我尝试查看一些链接 例如 标识连续 NaN 出现的位置以及计数 Pandas NaN 孔的游程长度 https stackoverflow com que
  • Apache Beam Pipeline 写表后查询表

    我有一个 Apache Beam Dataflow 管道 它将结果写入 BigQuery 表 然后我想查询该表以获取管道的单独部分 但是 我似乎无法弄清楚如何正确设置此管道依赖性 我编写的新表 然后想要查询 与一个单独的表连接以进行某些过滤

随机推荐

  • word2016页码设置(包括目录去除页码)

    word2016页码设置 包括目录去除页码 把你鼠标的光标 移到正文 最开始 点击布局 选择 分隔符 里面的 下一页 开始插入页码 然后设置页码格式 点击链接到前一节 手动删除你目录上的页码 操作流程 1 把你鼠标的光标 移到正文 最开始
  • stm32单片机控制28BYJ48步进电机原理及代码

    命名方式 以28BYJ48步进电机为例 28BYJ48步进电机的编号 28 步进电机的有效最大外径是28毫米 B 表示步进电机 Y 表示永磁式 J 表示减速型 48 表示四相八拍 工作原理 1 五线四相步进电机 不同相位得电会让步进电机的转
  • ESP32-S2应用开发——USB通信(CDC类)

    ESP32S2应用开发 USB通信 CDC类 目录 ESP32S2应用开发 USB通信 CDC类 前言 1 硬件介绍 1 1 硬件连接 2 软件开发 2 1 安装开发板 2 2 安装库 2 3 运行示例代码 2 4 USB传输速度测试 结束
  • task01

    问题1 天池赛官网下载到的5个数据文件 其中了解到有一份是训练数据集 但其他4份就不是很清楚 第一次接触这种类型的还是有点懵的 拿到数据 几份数据之间都有什么关系 具体我该怎么使用每一份文件 如何处理数据 然后弄成什么样的数据形式喂入模型
  • kafka java 性能测试_kafka集群部署以及java客户端测试

    本文主要讲述本人的集群部署kafka过程以及遇到的问题 其中 kafka版本为 kafka 2 10 zookeeper版本为 zookeeper 3 4 8 jdk 8u101 linux x64一 kafka以及zookeeper安装以
  • Eclipse IDE各个版本没有什么区别就是插件库不一样

    1 Eclipse IDE for Java Developers 该版本适合Java开发者 集成CVS Git XML编辑器 Mylyn Maven integration和WindowBuilder等插件 2 Eclipse IDE f
  • Html页面内引入抽取出来的Html,js,css示例

    在写纯Html网站的时候 每个页面的头部菜单 js css和底部说明都是同样的 有的时候你要改 就要一个一个的去改 通过下面方法将这些相同的抽取出来 方便后期维护 希望能帮到你 在applyBusiness html页面引入公共页头head
  • 贝叶斯优化Bayesian Optimization(学习笔记)

    贝叶斯优化应用背景 如果待解决问题为中输入 x x x 输出 f x f x f x 具有如
  • C语言中的.c 和.h 文件区别

    本文的大部分内容来自网上 经过自己的理解和总结整理而来 希望对和自己有同样的困惑的人予以参考 感谢那些网上的大牛们 是你们的无私 让我学到了很多的东西 予人玫瑰 手留余香 文章转载请注明出处 首先我们先看一下这个例子 由于我也不知道到底那个
  • 微信小程序做店铺收费吗?【微信小程序店铺】

    很多商家企业现在都已经有自己的微信小程序店铺了 还没有的微信小程序店铺的商家企业也是计划开通自己的微信小程序店铺 那么对于他们来说 除了要知道怎么做微信小程序店铺 还需要了解微信小程序做店铺收费吗这个问题 那么下面就对微信小程序做店铺收费吗
  • Jmeter —— jmeter接口自动化测试操作流程

    在企业使用jmeter开展实际的接口自动化测试工具 建议按如下操作流程 可以使整个接口测试过程更规范 更有效 接口自动化的流程 1 获取到接口文档 swagger word excel 2 熟悉接口文档然后设计测试用例 一般都是先在exce
  • Android PowerSupply (五)ChargeIC SGM41511 IC简介

    目录 Android PowerSupply 一 总概 Android PowerSupply 二 power supply core Android PowerSupply 三 power supply sys Android Power
  • JAVA进阶(三)——注解和反射

    文章目录 三 注解和反射 3 1 注解的概念 什么是注解 Annotation Annotation的作用 Annotation的格式 Annotation在哪里使用 3 2 内置注解 Override 定义在java lang Overr
  • curl无返回值

    问题 输入curl xxx xxx xxx xxx dddd service 按下回车后无任何返回值 解决 在命令的最后加上 如上述命令改为 curl xxx xxx xxx xxx dddd service 后成功返回html
  • matlab练习程序(广度优先搜索BFS、深度优先搜索DFS)

    如此经典的算法竟一直没有单独的实现过 真是遗憾啊 广度优先搜索在过去实现的二值图像连通区域标记和prim最小生成树算法时已经无意识的用到了 深度优先搜索倒是没用过 这次单独的将两个算法实现出来 因为算法本身和图像没什么关系 所以更纯粹些 广
  • range函数参数较大大时占据大量内存

    20200806 引言 编写一个编写的时候 发现内存逐步占用越来越大 脚本的目的是利用循环生成大量的数值 然后利用生分成的数值来执行某个函数 大致上的函数伪码就是下面这个 def some compute x pass max value
  • 基于 Android NDK 的学习之旅-----数据传输一(基本数据类型和数组传输)(附源码)

    之前的一些文章都有涉及到上层和中间层的数据传输 简单来说 也就是参数和返回值的使用 因为中间层要做的最多的也就是数据传输与转换 下面来介绍下这方面的知识 数据传输可分为 基本数据类型传输 和 引用数据类型的传输 因为数组传输也比较特别 其实
  • 神经网络基础-GRU和LSTM

    在深度学习的路上 从头开始了解一下各项技术 本人是DL小白 连续记录我自己看的一些东西 大家可以互相交流 本文参考 本文参考吴恩达老师的Coursera深度学习课程 很棒的课 推荐 本文默认你已经大致了解深度学习的简单概念 如果需要更简单的
  • Thread UncaughtExceptionHandler

    做web开发的时候 一般都是在Controller统一捕捉异常 在业务逻辑里抛出自定义的异常 如果代码中使用了多线程 线程中出错 或者你在线程中抛出一个异常 在最外层Controller里是无法捕捉到线程中的异常的 Thread类中定义了一
  • 用 Python 基于 pyecharts 对微信好友(性别,地域)进行分析,并数据可视化

    代码我是在anaconda的jupyter notebook里编写运行的 需要安装的库 在cmd里安装 pip install wxpy pip nstall pyecharts wxpy 在 itchat 的基础上 通过大量接口优化提升了