【问题标题】:Setting a maximum size for Voronoi cell using ggplot2使用 ggplot2 设置 Voronoi 单元的最大大小
【发布时间】:2020-04-14 12:01:39
【问题描述】:

可重现的例子:

    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坐标在空间上不一致,我不想给读者留下错误的印象。在我的真实数据中,一些单元格相当大。

【问题讨论】:

    标签: r ggplot2 tidyverse voronoi


    【解决方案1】:

    您使用的 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 package (v0.3.0) 于 2020-04-14 创建

    【讨论】:

    • 啊,我没有遇到ggforce 包!似乎它对其他一些情节也很有用。谢谢!吉姆
    • 可能是一个单独的问题,但您不知道如何转换为曼哈顿距离吗?
    • 你的意思是得到矩形外边缘?不,抱歉,恐怕我不知道 ggforce 中有一个参数会设置它。
    • 当然。值得一试。我已经广泛研究并没有将它们转换为多边形并搞乱平滑等。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 2018-06-27
    • 2011-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-28
    • 2013-10-05
    • 2021-12-13
    相关资源
    最近更新 更多