• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

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

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文转自网络。

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,最后以圆圈布局。

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


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap