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

浏览: 7936

本文转自网络。

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的第一列中,例如:

Clipboard Image.png

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

实例

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

Clipboard Image.png

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

Clipboard Image.png

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设置标签颜色。

Clipboard Image.png

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


Clipboard Image.png

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

Clipboard Image.png

Clipboard Image.png

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

具体的参数设置可以查看帮助文档(?graph.plotting):http://127.0.0.1:13971/library/igraph/html/igraph.plotting.html

推荐 1
本文由 大数据人 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

0 个评论

要回复文章请先登录注册