R igraph 手册页

如果您从 R 中使用 igraph,请使用此选项

+.igraph {igraph}R 文档

向图中添加顶点、边或另一个图

描述

向图中添加顶点、边或另一个图

用法

## S3 method for class 'igraph'
e1 + e2

参数

e1

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

e2

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

详细信息

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

  • 如果它也是一个 igraph 图对象,并且它们都是命名图,则计算两个图的并集,请参见 union

  • 如果它也是一个 igraph 图对象,但两者都不是命名图,则计算两个图的不相交并集,请参见 disjoint_union

  • 如果它是一个数字标量,则将指定数量的顶点添加到图中。

  • 如果它是一个字符标量或向量,则将其解释为要添加到图中的顶点的名称。

  • 如果它是一个使用 vertexvertices 函数创建的对象,则会将新顶点添加到图中。 当您要添加一些顶点属性时,此形式是合适的。 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 只是 vertices 的别名,为了可读性而提供。 如果将单个顶点添加到图中,则用户应使用它。

  • 如果它是一个使用 edgeedges 函数创建的对象,则会将新边添加到图中。 新边以及它们的属性可以指定为 edges 函数的参数。

    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 只是 edges 的别名,为了可读性而提供。 如果将单个边添加到图中,则用户应使用它。

  • 如果它是一个使用 path 函数创建的对象,则会添加形成路径的新边。 边以及它们的属性被指定为 path 函数的参数。 非命名参数被连接并解释为沿路径的顶点 ID。 其余参数将作为边属性添加。

    示例

      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"

参见

用于操作图结构的其他函数:add_edges(), add_vertices(), delete_edges(), delete_vertices(), edge(), igraph-minus, path(), vertex()

示例

# 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)

[包 igraph 版本 1.3.5 索引]