向图中添加顶点、边或其他图
详细信息
加号运算符可用于向图中添加顶点或边。执行的实际操作取决于右侧参数的类型。
如果它是另一个 igraph 图对象,并且它们都是命名图,则计算两个图的并集,请参见
union()
。如果它是另一个 igraph 图对象,但两者中的任何一个都不是命名的,则计算两个图的不相交并集,请参见
disjoint_union()
。如果它是一个数值标量,则将指定数量的顶点添加到图中。
如果它是一个字符标量或向量,则它被解释为要添加到图中的顶点的名称。
如果它是一个使用
vertex()
或vertices()
函数创建的对象,则将新顶点添加到图中。当要添加一些顶点属性时,此形式是合适的。vertices()
函数的操作数指定要添加的顶点数及其属性。vertices()
的未命名参数被连接并用作 ‘name
’ 顶点属性(即顶点名称),命名参数将作为附加顶点属性添加。示例g <- g + vertex(shape="circle", color= "red") g <- g + vertex("foo", color="blue") g <- g + vertex("bar", "foobar") g <- g + vertices("bar2", "foobar2", color=1:2, shape="rectangle")
vertex()
只是edge()
或函数的参数指定新边及其可能的属性。
edges()
的未命名参数被连接并用作新边的端点的顶点 ID。命名参数将作为边属性添加。示例
g <- make_empty_graph() + vertices(letters[1:10]) + vertices("foo", "bar", "bar2", "foobar2") g <- g + edge("a", "b") g <- g + edges("foo", "bar", "bar2", "foobar2") g <- g + edges(c("bar", "foo", "foobar2", "bar2"), color="red", weight=1:2)
请参阅下面的更多示例。
edge()
只是path()
函数创建的对象,则添加形成路径的新边。边及其可能的属性被指定为g <- make_empty_graph() + vertices(letters[1:10]) g <- g + path("a", "b", "c", "d") g <- g + path("e", "f", "g", weight=1:2, color="red") g <- g + path(c("f", "c", "j", "d"), width=1:3, color="green")
重要的是要注意,虽然加号运算符是可交换的,即可以写
graph <- "foo" + make_empty_graph()
但它不是结合律的,例如
graph <- "foo" + "bar" + make_empty_graph()
会导致语法错误,除非使用括号
graph <- "foo" + ( "bar" + make_empty_graph() )
为了清楚起见,我们建议始终将图对象放在运算符的左侧
graph <- make_empty_graph() + "foo" + "bar"