跳到内容

向图中添加顶点、边或其他图

用法

# S3 method for class 'igraph'
e1 + e2

参数

e1

第一个参数,可能是一个 igraph 图,但请参见下面的详细信息。

e2

第二个参数,请参见下面的详细信息。

详细信息

加号运算符可用于向图中添加顶点或边。执行的实际操作取决于右侧参数的类型。

  • 如果它是另一个 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"

示例

# 10 vertices named a,b,c,... and no edges
g <- make_empty_graph() + vertices(letters[1:10])

# Add edges to make it a ring
g <- g + path(letters[1:10], letters[1], color = "grey")

# Add some extra random edges
g <- g + edges(sample(V(g), 10, replace = TRUE), color = "red")
g$layout <- layout_in_circle
plot(g)