R igraph 手册页

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

graph_from_literal {igraph}R 文档

通过简单接口创建(小型)图

描述

如果您想快速创建一个(命名的)小型图,此函数非常有用,它适用于有向图和无向图。

用法

graph_from_literal(..., simplify = TRUE)

from_literal(...)

参数

...

对于 graph_from_literal,公式给出了图的结构,请参见下面的详细信息。 对于 from_literal,所有参数都传递给 graph_from_literal

simplify

逻辑标量,是否在创建的图上调用 simplify。 默认情况下,该图被简化,删除循环和多重边。

详细信息

graph_from_literal 对于快速创建小型图非常方便。 您需要提供一个或多个 R 表达式,给出图的结构。 这些表达式由顶点名称和边运算符组成。 边运算符是 ‘-’ 和 ‘+’ 字符的序列,前者用于边,后者用于箭头。 边可以任意长,即您可以根据需要使用任意数量的 ‘-’ 字符来“绘制”它们。

如果所有边运算符仅由 ‘-’ 字符组成,则该图将是无向图,而单个 ‘+’ 字符表示有向图。

让我们看一些简单的例子。 如果没有参数,该函数将创建一个空图

  graph_from_literal()

一个简单的无向图,带有两个名为 “A” 和 “B” 的顶点,并且只有一条边

  graph_from_literal(A-B)

请记住,边的长度无关紧要,因此我们可以编写以下内容,这将创建相同的图

  graph_from_literal( A-----B )

如果图中有很多断开连接的组件,请用逗号分隔它们。 您还可以给出孤立的顶点。

  graph_from_literal( A--B, C--D, E--F, G--H, I, J, K )

:’ 运算符可用于定义顶点集。 如果边运算符连接两个顶点集,则第一个集合中的每个顶点将连接到第二个集合中的每个顶点。 以下形式创建一个完整的图,包括循环边

  graph_from_literal( A:B:C:D -- A:B:C:D )

在有向图中,只有当边运算符在边的末尾包含箭头(“+”)时,才会创建边

  graph_from_literal( A -+ B -+ C )
  graph_from_literal( A +- B -+ C )
  graph_from_literal( A +- B -- C )

因此,在第三个示例中,顶点 BC 之间没有创建边。

也可以使用简单的边运算符创建互边

  graph_from_literal( A +-+ B +---+ C ++ D + E)

再次注意,边运算符的长度是任意的,“+”、“++” 和 “+-----+” 具有完全相同的含义。

如果顶点名称包含空格或其他特殊字符,则需要引用它们

  graph_from_literal( "this is" +- "a silly" -+ "graph here" )

您可以通过这种方式在顶点名称中包含任何字符,甚至包括 ‘+’ 和 ‘-’ 字符。

请参阅下面的更多示例。

一个 igraph 图

参见

其他确定性构造函数:graph_from_atlas(), graph_from_edgelist(), make_chordal_ring(), make_empty_graph(), make_full_citation_graph(), make_full_graph(), make_graph(), make_lattice(), make_ring(), make_star(), make_tree()

示例

# A simple undirected graph
g <- graph_from_literal( Alice-Bob-Cecil-Alice, Daniel-Cecil-Eugene,
                     Cecil-Gordon )
g

# Another undirected graph, ":" notation
g2 <- graph_from_literal( Alice-Bob:Cecil:Daniel, Cecil:Daniel-Eugene:Gordon )
g2

# A directed graph
g3 <- graph_from_literal( Alice +-+ Bob --+ Cecil +-- Daniel,
                     Eugene --+ Gordon:Helen )
g3

# A graph with isolate vertices
g4 <- graph_from_literal( Alice -- Bob -- Daniel, Cecil:Gordon, Helen )
g4
V(g4)$name

# "Arrows" can be arbitrarily long
g5 <- graph_from_literal( Alice +---------+ Bob )
g5

# Special vertex names
g6 <- graph_from_literal( "+" -- "-", "*" -- "/", "%%" -- "%/%" )
g6


[包 igraph 版本 1.3.5 索引]