Igraph入门指南
一、图的结构
图是顶点和边的集合,而边是通过顶点来描述。顶点和边,要用集合的理念去操作。
1、igraph中与图结构相关的函数
+.igraph(),
add_edges(), add_vertices(),
complementer(),compose(), connect(), contract(),
delete_edges(), delete_vertices(),
difference(), difference.igraph(),
disjoint_union(),
edge(),
igraph-minus, intersection(), intersection.igraph(),
path(),
permute(),
rep.igraph(), reverse_edges(),
simplify(), union(), union.igraph(),
vertex()
2、图的基本要素——顶点(vertex)
2-1 检索顶点序列:V(g)
函数
V(g)
得到图的顶点序列。这个顶点序列通常用作igraph其他函数的参数,用于指代图的顶点。顶点序列被限定到具体图的特定顶点,一个图的V(g)
不能与另一个图一起使用。
在实现级别上,顶点序列只是一个包含数字顶点id的向量,但它有一个特殊的类属性,可以对其执行特定于图的操作,例如基于图结构或顶点属性选择顶点的子集。
# 未名图的顶点id
> g <- make_ring(10)
> V(g)
+ 10/10 vertices, from d684cd6:
[1] 1 2 3 4 5 6 7 8 9 10
# 命名图的顶点id
> g <- make_ring(10) %>% set_vertex_attr('name',value=letters[1:10])
> V(g)
+ 10/10 vertices, named, from 2f141f4:
[1] a b c d e f g h i j
# 注意,命名图的名只能用'name',用'label'不会给图的顶点命名
> g <- make_ring(10) %>% set_vertex_attr('label',value=letters[1:10])
> V(g)
+ 10/10 vertices, from 935689e:
[1] 1 2 3 4 5 6 7 8 9 10
顶点序列通常由V(g)
函数创建。这样做的结果包括按顶点id递增顺序排列的所有顶点。顶点序列可以通过数字向量进行索引,就像其他R向量一样。
用V(g)
可以查询或设置图顶点的所有属性,在实际操作中,可以把V(g)
的结果当作一个对象,与图顶点相关的属性是这个对象的属性(也就是变量),可以通过V(g)$attrib
的语法来访问和设置这些顶点属性,这与面向对象编程的语法也是相似的。
> V(g)[3:5]
+ 3/10 vertices, from 935689e:
[1] 3 4 5
> V(g)[3:5]