非程序员python 篇二:使用python进行微信好友数据可视化。你也许可以把它应用在职场哦~
大家好,我又来了 ,没想到上次发完第一篇python文章后反响还不错,所以我又来写一篇我在生活中经常用到的一个库pyecharts~,pyecharts是基于百度的开源数据可视化工具Echarts开发而来,使用pyecharts可以方便的制作30+种常见图表,并且可以制作3D图表哦~项目地址:点击这里。文档地址:点击这里。对了,我发现我的文章收藏几乎是点赞的十多倍TAT,老爷们可不可以收藏的同时点个赞支持下呢
ps:我在大妈家分享的所有代码已经上传到了github:点击这里获取,因为在这里显示代码没有缩进或者显示错误,造成阅读的困难,所以就不贴源码啦~需要自取叭。
一、数据可视化展示
首先先展示一下pyecharts可以制作的部分图表~
二、微信数据可视化
接下来是本期的主要内容,使用上篇文章讲述的itchat库来获取好友性别信息与个性签名。然后生成好友性别比例分析饼状图,与个性签名词云。这个程序没什么实际作用~但是可以借此了解一下pyecharts是如何工作的,也许在工作中就用的上哦~ 代码地址点击这里。需要注意的是,本程序生成的是html文件,双击即可在浏览器打开,通过鼠标移动和点击还可以和图表交互哦~使用程序之前要记得安装依赖库。
pip install itchat pyecharts jieba
下面展示一下我使用以上代码生成的html截图:
蛤蛤蛤,好友比较多有两百多个了,男女比例几乎是一比一
看我的词云生活和努力这么多人使用,看来90后都已经开始感受到生活的压力了,只有努力才可以生活下去鸭
2.1代码具体分析
okk,下面到了讲代码的时间,hhhh做梦都没想到会在大妈家写代码,而且我也是个半吊子,希望抛砖引玉~等大佬赐教~
2.1.1 获取好友信息
下面的代码是通过itchat的api,get_friends()来获取好友信息,可以获取的信息有昵称、微信号、个性签名、好友头像、性别、所在地等内容。因为我只想将性别与个性签名可视化,所以可以在代码看到我只保存了Key为Signature与Sex的值。需要注意的是我的代码没有将数据保存到本地,如果有相关需求可以写到文件中哦~
friends = itchat.get_friends(update=True)[0:] # 获取好友信息
friendslist = [] #新建
for friend in friends:
getTag(friend['Signature'], signatureCounter)
sexCounter[sexDict[str(friend['Sex'])]]+= 1
2.1.2 数据处理
通过我的方法获得的数据是以字典形式保存的,Key是性别,Value是该性别好友数。但因为pyecharts的api接受参数需要的是把性别和性别人数合成一个数据["男","120"],不同的数据再存储成list来使用。所以在这里我们需要把字典形式数据拆成两个list返回。
def dict2list(dict_):
namelist = []
numlist = []
for key,value in dict_.items():
namelist.append(key)
numlist.append(value)
returnnamelist, numlist
2.1.3 生成pyecharts图表
将数据整理好之后就可以直接调用pyecharts的api生成饼状图了,首先调用Pie()构造函数来生成一个饼图对象,接下来使用add()函数添加数据,set_global_opts()函数添加标题等内容,set_series_opts()函数改变显示内容。最后使用render()函数来保存饼图就可以了,如果没有改动我的程序,那么会在当前文件夹下直接生成"性别比例.html"文件。
#制作饼图
def sexAnalyse(itemname_, itemnamelist_, itemnumlist_):
totle = itemnumlist_[0]+itemnumlist_[1]+itemnumlist_[2]
subtitle = "共有:%d个好友" % totle
pie = Pie()#新建饼图对象
pie.add("",[list(z) for z in zip(itemnamelist_,itemnumlist_)],center=["35%", "50%"])#饼图对象数据添加
pie.set_global_opts(title_opts=opts.TitleOpts(title=subtitle),legend_opts=opts.LegendOpts(pos_left="15%"),)
pie.set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}"))
outFileName= itemname_+'.html'
pie.render(outFileName)#保存饼图对象
制作个性签名词云步骤几乎是一样的,只有调用的api不同,代码里有注释,这里就不赘述了。
总结
通过本文可以看到简单的数据可视化的步骤分三步,1.收集数据,2.数据处理,3.制作图表。
第一步收集数据的方式是多种多样的,你可以使用python编写爬虫在互联网爬取,也可以直接利用公司的相关数据。
第二步数据处理在本文中就是简单的把读到的数据转变成第三步制作图表所需要的数据格式,而在实际生产中可能会面临更多的问题,比如数据去除、预计算数据等内容。
第三步是最简单的一步,只是简单的利用大佬们写好的接口就可以直接出图了~当然如果大佬们提供的图表格式没有你想要的类型,那么这一步对非程序员来说应该是非常复杂的工作。
okk,结束啦,如果觉得有点用处的话给我点个赞叭
小笨象XBX
校验提示文案
Chr1st0p
校验提示文案
chaleaoch
校验提示文案
你你你你要跳舞吗
校验提示文案
蘇小水
校验提示文案
ZDMDZ
校验提示文案
黄昏百分百
校验提示文案
蜀犬
校验提示文案
ZDMDZ
校验提示文案
蘇小水
校验提示文案
蜀犬
校验提示文案
你你你你要跳舞吗
校验提示文案
chaleaoch
校验提示文案
Chr1st0p
校验提示文案
黄昏百分百
校验提示文案
小笨象XBX
校验提示文案