首页 > 解决方案 > 使用 ggplot2 设置 Voronoi 单元的最大大小

问题描述

可重现的例子:

    set.seed(123)
    x <- sample(1:30,9)
    y <- sample(1:30,9)
    points <- data.frame(x, y,
                         distance = sample(c("apples","pears","banana"), 9, replace = T))

# Plot
    ggplot(points) +
      geom_voronoi(aes(x=x,y=y,fill=distance)) +
      stat_voronoi(aes(x=x,y=y),geom = "path") +
      geom_point(aes(x=x,y=y))

使:

伟大的

我想知道是否可以限制 Voronoi 单元的大小,使其与用于绘图的 x,y 有最大距离。我在油漆中敲了这个:

一些

有些人可能称之为艺术。

如果单元格不与相邻单元格相交,则单元格只能如此大。有任何想法吗。

为什么?我正在使用 GPS 数据创建单元格,然后按一个因素对这些单元格进行着色。GPS坐标在空间上不一致,我不想给读者留下错误的印象。在我的真实数据中,一些单元格相当大。

标签: rggplot2tidyversevoronoi

解决方案


似乎您使用的是稍微不同的版本 ggforce,但在 0.3.1 中,您可以使用max_radius参数设置大小:

library(ggforce)
#> Warning: package 'ggforce' was built under R version 3.6.2
#> Loading required package: ggplot2
library(ggplot2)
set.seed(123)
x <- sample(1:30,9)
y <- sample(1:30,9)
points <- data.frame(x, y,
                     distance = sample(c("apples","pears","banana"), 9, replace = T))

# Plot
ggplot(points, aes(x, y, group = -1L)) +
  geom_voronoi_tile(aes(fill=distance),
                    max.radius = 10,
                    colour = "black") +
  geom_point(aes(x=x,y=y))

reprex 包(v0.3.0)于 2020-04-14 创建


推荐阅读