首页 > 其他分享 >分析微信好友数据,可以可视化好友男女比例分布,可视化省份来源,可视化签名的情感强度值

分析微信好友数据,可以可视化好友男女比例分布,可视化省份来源,可视化签名的情感强度值

时间:2023-03-31 14:23:17浏览次数:44  
标签:city elif plt get 微信 sex 可视化 import 好友

一、分析数据可视化好友男女分布比例

 

 1 plt.rcParams['font.sans-serif']=['SimHei'] 
 2 #用来正常显示中文标签
 3 plt.rcParams['axes.unicode_minus']=False
 4 
 5 # 1.读取csv文件,把性别信息读取出来
 6 def getSex(filename):
 7     lstsex = []
 8     with open(filename, 'r') as fr:
 9         reader = csv.reader(fr)
10         for i in reader:
11             lstsex.append(i[4])
12     return lstsex
13 
14 
15 # 2.性别可视化
16 def VisualSexpyechart(lstsex):
17     sex = dict()
18     # 2.1提取好友性别信息,从1开始,因为第0个是自己
19     for f in lstsex[1:]:
20         if f == '1':  # 男
21             sex["man"] = sex.get("man", 0) + 1
22         elif f == '2':  # 女
23             sex["women"] = sex.get("women", 0) + 1
24         else:  # 未知
25             sex["unknown"] = sex.get("unknown", 0) + 1
26     # 在屏幕上打印出来
27     total = len(lstsex[1:])
28     # 2.2打印出自己的好友性别比例
29     print("男性好友: %.2f%%" % (float(sex["man"]) / total * 100) + "   " + "女性好友: %.2f%%" % (
30                 float(sex["women"]) / total * 100) + "   " +
31           "不明性别好友: %.2f%%" % (float(sex["unknown"]) / total * 100))
32     plt.figure(figsize=(6,9))
33     labels = [u'男性好友',u'女性好友',u'性别不明']
34     sizes = [sex['man'],sex['women'],sex['unknown']]
35     colors = ['red','yellowgreen','lightskyblue']
36     explode = (0.05,0,0)
37     patches,l_text,p_text = plt.pie(sizes,explode=explode,labels=labels,colors=colors,labeldistance = 1.1,autopct = '%3.1f%%',shadow = False,startangle = 90,pctdistance = 0.6)
38     for t in l_text:
39        t.set_size(30)
40     for t in p_text:
41         t.set_size(20)
42     plt.axis('equal')
43     plt.legend()
44     plt.show()
45 
46 # 3.执行主程序,得到所有好友性别
47 VisualSexpyechart(getSex("我的微信好友信息.csv"))

 

二、可视化省份来源

 1 import csv
 2 
 3 from matplotlib import pyplot as plt
 4 
 5 import matplotlib.pylab as plt
 6 
 7 plt.rcParams['font.sans-serif']=['SimHei']
 8 #用来正常显示中文标签
 9 plt.rcParams['axes.unicode_minus']=False
10 
11 # 1.读取csv文件,把省份信息读取出来
12 def getCity(filename):
13     lstcity = []
14     with open(filename, 'r') as fr:
15         reader = csv.reader(fr)
16         for i in reader:
17             lstcity.append(i[3])
18     return lstcity
19 
20 
21 # 2.可视化
22 def VisualSexpyechart(lstcity):
23     city = dict()
24     # 2.1提取好友省份信息
25     for f in lstcity[1:]:
26         if f == '山东':
27             city["山东"] = city.get("山东", 0) + 1
28         elif f == '黑龙江':
29             city["黑龙江"] = city.get("黑龙江", 0) + 1
30         elif f == '澳门':
31             city["澳门"] = city.get("澳门", 0) + 1
32         elif f == '吉林':
33             city["吉林"] = city.get("吉林", 0) + 1
34         elif f == '江苏':
35             city["江苏"] = city.get("江苏", 0) + 1
36         elif f == '贵州':
37             city["贵州"] = city.get("贵州", 0) + 1
38         elif f == '上海':
39             city["上海"] = city.get("上海", 0) + 1
40         elif f == '湖北':
41             city["湖北"] = city.get("湖北", 0) + 1
42         elif f == '北京':
43             city["北京"] = city.get("北京", 0) + 1
44         elif f == '浙江':
45             city["浙江"] = city.get("浙江", 0) + 1
46         elif f == '河北':
47             city["河北"] = city.get("河北", 0) + 1
48         elif f == '辽宁':
49             city["辽宁"] = city.get("辽宁", 0) + 1
50         elif f == '吉林':
51             city["吉林"] = city.get("吉林", 0) + 1
52         else :
53             city["未知"] = city.get("未知", 0) + 1
54     plt.figure(figsize=(6,9))
55     #labels = [u'山东',u'黑龙江',u'澳门',u'吉林',u'江苏',u'贵州',u'上海',u'湖北',u'北京',u'浙江',u'河北',u'辽宁',u'吉林',u'未知']
56     #sizes = [city["山东"],city["黑龙江"],city["澳门"],city["吉林"],city["江苏"],city["贵州"],citycity["上海"],city["湖北"],city["北京"],city["浙江"],city["河北"],city["辽宁"],city["吉林"],city["未知"]]
57     #colors = ['#ffff00','#ffcc00','#fff9900','#ff6600','#ff3300','#ffffcc','#ff99cc','#ff66cc','#dd33cc','#ff00ff','#99ff00','#99cc00','#996600','#993300']
58     x=[1,2,3,4,5]  # 确定柱状图数量,可以认为是x方向刻度

    这里随机找五个省份进行可视化 59 y=[city["山东"],city["黑龙江"],city["澳门"],city["吉林"],city["江苏"]] # y方向刻度 60 61 color=['red','black','peru','orchid','deepskyblue'] 62 x_label=['山东','黑龙江','澳门','吉林','江苏'] 63 plt.xticks(x, x_label) # 绘制x刻度标签 64 plt.bar(x, y,color=color) # 绘制y刻度标签 65 66 #设置网格刻度 67 plt.grid(True,linestyle=':',color='r',alpha=0.6) 68 plt.show() 69 70 # 3.执行主程序,得到所有好友性别 71 VisualSexpyechart(getCity("我的微信好友信息.csv"))

三、签名的情感强度值

首先将csv文件中的签名信息提取并保存到sign.txt中

 1 import csv
 2 
 3 with open('我的微信好友信息.csv','r')as csvfile:
 4     reader = csv.reader(csvfile)
 5     #遍历每一行数据
 6     for row in reader:
 7         #获取签名数据
 8         signature = row[5]
 9         #如果签名不为空,则保存到txt文件中
10         if signature:
11             with open('sign.txt','a')as f:
12                 f.write(signature + '\n')

下面文件signEn.txt为sign.txt英文版

 1 import xlrd
 2 from textblob import TextBlob
 3 import nltk
 4 import numpy as np
 5 import pandas as pd
 6 from pyecharts.charts import Pie
 7 import csv
 8 from pyecharts import options as opts
 9 
10 from matplotlib import pyplot as plt
11 plt.rcParams['font.sans-serif']=['SimHei'] 
12 #用来正常显示中文标签
13 plt.rcParams['axes.unicode_minus']=False
14 
  blob 15 with open('signEn.txt', 'r') as file: 16 signatures = file.read() 17 polarity_scores = [] 18 positive=0 19 negative=0 20 neutral=0 21 for signature in signatures.split('\n'): 22 blob = TextBlob(signature) 23 polarity_scores.append(blob.sentiment.polarity) 24 for i, score in enumerate(polarity_scores): 25 if score > 0:
       注释部分为输出判断签名的极性 26 #print(f"Signature {i+1} is positive.") 27 positive+=1 28 elif score < 0: 29 #print(f"Signature {i+1} is negative.") 30 negative+=1 31 else: 32 #print(f"Signature {i+1} is neutral.") 33 neutral+=1 34 igsize=(6,9) 35 labels = [u'positive',u'negative',u'neutral'] 36 sizes = [positive,negative,neutral] 37 colors = ['red','yellowgreen','lightskyblue'] 38 explode = (0.05,0,0) 39 patches,l_text,p_text=plt.pie(sizes,explode=explode,labels=labels,colors=colors, 40 labeldistance = 1.1,autopct = '%3.1f%%',shadow = False, 41 startangle = 90,pctdistance = 0.6) 42 for t in l_text: 43 t.set_size(30) 44 for t in p_text: 45 t.set_size(20) 46 plt.axis('equal') 47 plt.legend() 48 plt.show()

 

标签:city,elif,plt,get,微信,sex,可视化,import,好友
From: https://www.cnblogs.com/Szxszx/p/17275835.html

相关文章

  • ChatGPT 微信接入 C#完整源码
    1.无需搭建服务器,操作极其简单。  2.winform运行程序扫码进行微信登录,勾上自动回复,就可以充当机器人调用chatGPT可实现自动回复,可以申请小号操作。  3.可以识别会话消息和群聊消息,拉入群聊@机器人可以进行群聊的消息回复,可以得到@自己的回复消息。4.代码是完整的也......
  • 微信开发:个人页面
    微信开发:个人页面wxml:<!--用户列表选项--><scroll-viewclass="scbg"scroll-y='true'><viewclass="parent_catainer"><!--头部--><!--style="background-image:url('/images/persons/mind_hea......
  • 力扣602(MySQL)-好友申请Ⅱ:谁有最多的好友(中等)
    题目:在Facebook或者Twitter这样的社交应用中,人们经常会发好友申请也会收到其他人的好友申请。RequestAccepted表:(requester_id,accepter_id)是这张表的主键。这张表包含发送好友请求的人的ID,接收好友请求的人的ID,以及好友请求通过的日期。问题写一个查询语句,找出......
  • 可视化
    2D动画transformtransform属性允许你旋转,缩放,倾斜或平移给定元素平移:translate(x,y)缩放:scale(x,y)旋转:rotate(deg)倾斜:skew(deg,deg)坐标系用transform属性变换的元素会受transform-origin的影响,该属性用于指定形变的原点。css中的每个元素都有一个坐标系,其原点位于元......
  • 微信小程序使用 wxs 对模板数据格式化展示
    在小程序页面展示时,对时间、金额进行格式化处理。但是每次在js文件中处理,并setData感觉无比麻烦。是否可以直接在wxml模板文件中进行处理。正好发现了微信小程序wxs,完全满足需求。微信小程序wxs使用场景WXS(WeiXinScript)是微信创造的一套脚本语言,虽然看起来很JS异常......
  • R语言SVM支持向量机、文本挖掘新闻语料情感情绪分类和词云可视化
    全文链接:http://tecdat.cn/?p=32032原文出处:拓端数据部落公众号支持向量机(SVM)是一种机器学习方法,基于结构风险最小化原则,即通过少量样本数据,得到尽可能多的样本数据。支持向量机对线性问题进行处理,能解决非线性分类问题。本文介绍了R语言中的SVM工具箱及其支持向量机(SVM)方法,并......
  • Docker 轻量级可视化工具 Portainer
    1.概述Portainer是一款轻量级的应用,它提供了图形化界面,用于方便地管理Docker环境,包括单机环境和集群环境。官网:https://www.portainer.io/2.在Docker镜像仓库查找Portainer镜像dockerhub镜像仓库3.拉取Portainer镜像#拉取nginx镜像dockerpullportainer......
  • 微信小程序开发:前端中的"Redis"
    wx.setStorageSync('key','value')wx.getStorageSync("key")   参考链接https://developers.weixin.qq.com/miniprogram/dev/api/storage/wx.setStorageSync.html ......
  • Spring-Boot整合微信登陆、微信支付、邮箱发送、支付宝支付和阿里云短信
    Spring-Boot整合1.发送邮件2.支付宝支付3.阿里云短信4.微信登陆5.微信支付6.Swargger2前后端API接口信息文档7.ehcache缓存缓存8.Spring-Boot注解详解9.自定义配......
  • 搭建微信小程序开发环境
    有2种开发工具可供选择:一、微信小程序开发者工具别的不说,代码编辑区真的太小了,很不方便,我们略过。二、VisualCode通过官网下载,如果下载的很慢,或者没有反应,可以尝试把a......