时间:2021-05-22
前言
最近工作中遇到了一些需求,想通过图形化的方式显示社交网络特定用户的好友关系,上网找了一下这方面的图形库有networkx、graphviz等,找了好久我选择了iGraph这个图形库。下面话不多说了,来一起看看详细的介绍吧。
安装igraph
igraph在Windows下的安装稍微有点麻烦,之前尝试在windows用pip和conda直接装igraph都装不上,后来发现了lfd的网站 Unofficial Windows Binaries for Python Extension Packages , 里面有很多python的资源和库与工具。
在上面的网址中找到python_igraph去下载具体的python对应版本和是32位还是64位的,比如我下载了 python_igraph‑0.7.1.post6‑cp35‑none‑win_amd64.whl
利用pip 安装whl文件:pip install 文件名.whl
为了避免出错,打开cmd以后,要cd进入你存放的该whl文件的解压后的目录下在用pip进行安装。
绘制好友关系图
fans.txt 和 follow.txt分别保存了爬取下来的粉丝昵称以及关注人昵称。
#coding=utf-8from igraph import *count_fans=0 #粉丝数count_following=0 #关注人数 fans_name=[] #粉丝昵称following=[] #关注人昵称#打开爬取下的昵称文件with open('fans.txt','r') as f: lines=f.readlines() for line in lines: if (line!=None)&(line!='\n'): fans_name.append(line) # print fans_name count_fans+=1with open('follow.txt','r') as c: lines=c.readlines() for line in lines: if (line!=None)&(line!='\n'): following.append(line) count_following+=1g = Graph() #创建g.add_vertices(3+count_fans+count_following)g.add_edges([(0,1),(1,2)])g.vs[0]["name"]='Ta的粉丝'g.vs[1]["name"]='目标用户'g.vs[2]["name"]='Ta的关注'g.es["trunk"] = [True, True]g.vs["main_node"]=[1.5,3,1.5]for i in range(3,count_fans+3): g.add_edges((0,i)) g.es[i-1]["trunk"]=Falsefor j in range(count_fans+3,3+count_fans+count_following): g.add_edges((2,j)) g.es[j-1]["trunk"]=Falseindex=3for fans in fans_name: g.vs[index]["name"]=fans g.vs[index]["main_node"]=False index+=1for name in following: g.vs[index]["name"]=name g.vs[index]["main_node"]=False index+=1visual_style = {}color_dic={1.5:"#cfe6ff",3:"#7299a7",False:"#cfe6ff"}visual_style["vertex_label_size"]=11visual_style["vertex_label_dist"]=1visual_style["vertex_shape"]="circle"visual_style["vertex_size"] = [7+ 10*int(main_node) for main_node in g.vs["main_node"]]visual_style["edge_width"] = [1 + 2 * int(trunk) for trunk in g.es["trunk"]]visual_style["vertex_color"] =[color_dic[main_node] for main_node in g.vs["main_node"]]visual_style["vertex_label"] = g.vs["name"]visual_style["bbox"] = (1000, 1000)visual_style["margin"] = 150layout = g.layout("grid_fr")visual_style["layout"] = layoutplot(g, **visual_style)最终结果如图:
以上只演示了一个用户的社交关系图,有精力的话可以尝试递归地一层一层爬下去,想象一下最终绘出来的图也是挺炫酷的。
总结
以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对的支持。
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
前言最近在学习python-igraph,发现其实学习一种全新的语言看官方的文档是真的很有帮助,这次我的大部分python代码的完成都是靠着igraph官方的A
复制代码代码如下:1、新浪微博新浪微博2、腾讯微博腾讯微博3、开心网开心网或者用开心网4、豆瓣网豆瓣或者用豆瓣5、人人网人人网或者用人人网6、百度贴吧百度贴吧7
相关:文库、百度贴吧、知道、经验、百家号……博客:天涯、搜狐、新浪、网易、凤凰等。。。。。。微博:新浪微博、腾讯微博、网易微博、搜狐微博、微博等。。。自媒体:搜
推广自己的视频可以选择群发,比如让微信好友帮你群发,也可以通过贴吧、微博、博客的形式推广,效果都是不错的。电商平台年度推广计划只要生产厂家的资质合格,就可以生产
QQ好友,想发到贴吧或者微博是更加不行了。微信的动态表情怎么导出来呢?微信动态系列软件最新版本下载9.40MB权律二微信动态表情包立即下载10.35MB微信动态