360SDN.COM

R语言中的igraph包绘制网络图

来源: 数据玩家  2017-07-28 13:47:40    评论:0点击:

来源:大数据人(bigdata_ren

 

R语言中的igraph包可以很方便地画出网络图,在社交关系分析等领域发挥重要作用,下面介绍包中一个重要的函数graph_from_data_frame()。

 

graph_from_data_frame(d, directed = TRUE, vertices = NULL)

 

参数解释

(1)d: 格式为数据框,用来指定边序列;

(2)directed: 用于指定生成有向图(TRUE)还是无向图(FALSE),默认TRUE;

(3)vertices: 格式为数据框,用于指定节点属性,默认NULL;

  • 如果vertices没有指定(NULL),默认将数据框d的前两列作为边序列,其他列作为边的属性,节点的名称name按照边序列来确定;

  • 如果vertices被指定为某数据框a,则将d的前两列作为边序列,其他列作为边的属性;将a的第一列作为节点名称(name),a的剩余列作为节点的其他属性,同时应注意一旦vertices被指定,那么d中指定的边序列必须都包含在a的第一列中,例如:


关于igraph输出的说明可参见:http://127.0.0.1:13971/library/igraph/html/print.igraph.html

 

实例

(1)选取gcookbook包中的数据集madmen,绘制无向图g

(2)可以发现,上图整体比较乱,标签之间出现大量重叠,因此进一步修改。

V()函数和vertex.XXX可以设置或获取节点vertices的属性;

E()函数和edge.XXX可以设置或获取边edge的属性。

上例中,第一行设置这个图形的属性;vertex.size=4设置节点大小;第三行中,虽然边和节点可能都有名字,但默认时这些名字可能没有被当做标签,因此需要给vertex.label参数传递一个命名向量;vertex.label.cex=0.7设置标签字体大小;vertex.label.dist=0.4,设置节点和标签的距离,便于错开重叠;vertex.label.color设置标签颜色。

 

上例中通过vertex.XXX的形式向plot函数传递参数后再输出,可以直接利用V()h函数,效果是等价的。


同样,也可以设置边的属性

 

上例中,E(g)表示查看边;E(g)[c(2,11,19)]$label设置第(2,11,19)边的标签,然后将所有边的颜色设置为灰色后,再把第(2,11,19)边设置为红色,宽度为2,最后以圆圈布局。

为您推荐

友情链接 |九搜汽车网 |手机ok生活信息网|ok生活信息网|ok微生活
 Powered by www.360SDN.COM   京ICP备11022651号-4 © 2012-2016 版权