跳到内容

[Experimental]

此函数根据一组生成器顶点来分割图的顶点。每个顶点被分配到离它最近的生成器顶点(来自或到达)。

groups() 可以用于此函数的输出结果。

用法

voronoi_cells(
  graph,
  generators,
  ...,
  weights = NULL,
  mode = c("out", "in", "all", "total"),
  tiebreaker = c("random", "first", "last")
)

参数

graph

要分割成Voronoi单元的图。

generators

Voronoi单元的生成器顶点。

...

这些点用于未来的扩展,并且必须为空。

weights

可能是一个数值向量,给出边的权重。如果为NULL且图具有weight边属性,则使用该属性。如果为NA,则不使用权重(即使图具有weight属性)。在加权图中,路径的长度是其组成边的权重之和。

mode

字符型字符串。在有向图中,指定计算从生成器顶点到其他顶点("out"),从其他顶点到生成器顶点("in"),还是完全忽略边方向("all")。在无向图中忽略此参数。

tiebreaker

字符型字符串,指定当顶点与多个生成器顶点距离相同时该怎么做。"random"随机分配一个最小距离的生成器,"first"取第一个,"last"取最后一个。

一个具有两个元素的命名列表

membership

数值向量,给出每个顶点所属的簇ID。

distances

数值向量,给出每个顶点到其生成器的距离。

voronoi().

示例


g <- make_lattice(c(10, 10))
clu <- voronoi_cells(g, c(25, 43, 67))
groups(clu)
#> $`0`
#>  [1]  1  2  3  4  5  6  7  8  9 10 11 12 13 14 15 16 17 18 19 20 21 22 24 25 26
#> [26] 27 28 29 30 34 35 36 38 39
#> 
#> $`1`
#>  [1] 23 31 32 33 41 42 43 44 45 51 52 53 54 55 61 62 63 64 71 72 73 74 81 82 83
#> [26] 84 91 92 93 94
#> 
#> $`2`
#>  [1]  37  40  46  47  48  49  50  56  57  58  59  60  65  66  67  68  69  70  75
#> [20]  76  77  78  79  80  85  86  87  88  89  90  95  96  97  98  99 100
#> 
plot(g, vertex.color = clu$membership)