使用networkx导出关系网络并用gephi进行简单分析
来源:互联网 发布:淘宝助理怎么下架 编辑:程序博客网 时间:2024/05/16 09:25
之前使用爬虫获取到了微博上粉丝数大于2000的用户,大概在10W左右,并获取了他们的关注用户列表。现在,需要利用这些节点和节点间的关系网来进行社区探测(community detection),以进行进一步分析。不过在此之前,需要攫取一些小样本进行简单的可视化。
使用networkx(python)导出gexf格式文件
这边使用gephi来进行分析。而使用gephi需要有gexf或者gephi格式的数据。其中,gephi格式类似于工程文件,不仅储藏了数据,也储藏了整个工程中的所有参数,包括颜色等。而gexf只包含数据。因此,需要将mysql中的数据转化为gexf格式。
这里需要借助networkx包。networkx是python下的复杂网络编程包,具体使用方法这里不具体展开,只表述如何将从mysql中导入的node和edge数据生成为network中的Graph对象,然后再生成gexf文件
目前,假设有两个列表数据,一个是node,里面储存了网络中节点的数据,每个节点可以用int来表示,也可以用字符串来表示。另一个是edge,表示网络中节点之间的关系数据,或者说是边的数据。每条边用一个长为2的数组表示,分别表示该条边两边的节点。
举例例子,node=[‘A’,’B’,’C’],
edge=[ [‘A’,’B’] , [‘B’,’C’] ]
现在需要利用node和edge生成Graph类,并生成gexf文件,其实挺简单的
import networkx as nxG=nx.Graph()G.add_nodes_from(node)G.add_edges_from(edge)nx.write_gexf(G,'your_file_name.gexf')
此时在根目录下会生成名为your_file_name.gexf的文件
使用gephi进行可视化和简单分析
首先打开gephi,然后选择打开图文件,选择之前生成的gexf文件。我这边选用的是前1万名的微博大V以及他们之间的关系网。
在图的类型处选择无向图或者是有向图,取决于网络自身的属性。
打开以后能看到揉在一起的网络,呈方块状,里面是密密麻麻的节点和边。
在左下角有布局选项,选择一个算法,点运行展开(lay out) 我这里选用的是ForceAtlas 2。展开后的结果如下所示
这时需要探测关系网中的子团体,需要运行community detection算法。在右边统计一栏中找到模块化,点击运行
得到的计算结果如下
横轴为社区的编号,纵轴为该社区具有的节点数。由于有大量节点未与其他节点互相关注,因此大部分的社区大小为1。
此时需要对主要社区进行找色,以便于观察。
在左上角的外观-》节点-》数值设定上,选择用modularity class作为渲染方式
最后得到的渲染结果如下
可以看到一种颜色代表了一个社区。是不是很漂亮呢?
- 使用networkx导出关系网络并用gephi进行简单分析
- networkx 分析复杂网络资料
- 【python数据挖掘课程】十七.社交网络Networkx库分析人物关系(初识篇)
- 使用Androguard配合Gephi生成apk的函数调用图进行静态分析
- NetworkX学习笔记-4-NetworkX输出Gephi文件的方法
- NetworkX学习笔记-5-NetworkX输出Gephi文件的方法
- python+beautifulsoup/xpath爬取新浪微博某用户的三层关注网络并用gephi可视化
- python+beautifulsoup/xpath爬取某条新浪微博的转发网络并用gephi可视化
- 使用networkx计算网络的介数中心性
- 如何使用apoc 从neo4j导出数据,gephi导入数据
- Python NetworkX/Community包进行网络划分和可视化
- 使用Gephi绘制动态网络的三种方法
- 数据分析学习笔记-NetworkX的使用1
- 【复杂网络系列】gephi绘图
- 使用tcpdump 进行网络包分析
- 使用tcpdump进行网络包分析
- networkx分析图
- 一个简单的Gephi Demo
- Java大牛养成记(1)——J2EE13规范
- VS启动调试传递命令行参数
- c++ gui qt4 chap02 find
- iOS 判断相机权限是否被限制,判断相机是否可以使用
- Linux内核分析实验一
- 使用networkx导出关系网络并用gephi进行简单分析
- 自定义 ActionBar ,创建复合控件
- java操作properties文件
- 4.1.3.2 电池充电的监听 Broadcast-Receiver
- input标签 和fmt:formatDate的使用
- MYSQL 函数datediff timestampdiff 的区别
- 字符串反转成整数
- Monkey日志信息Event percentages说明
- COCOS学习笔记--粒子系统