【问题标题】:How calculate the area of a polygon in R, if I only have X,Y coordinates?如果我只有 X,Y 坐标,如何计算 R 中多边形的面积?
【发布时间】:2020-03-05 10:43:19
【问题描述】:

我有一个带有 X、Y 坐标的数据框,但我需要计算覆盖scatterplot 中所有点的区域 有没有办法画一个多边形包围所有的点并计算这个面积?

【问题讨论】:

    标签: r scatter-plot


    【解决方案1】:

    这是一个凸包问题。 Other questions 覆盖类似的领域。我们可以在这里收集绘图和面积计算问题。

    要绘制点云的凸包,我们可以使用chull 函数:

    library(tidyverse)
    
    data <- tibble(x = runif(50), y = runif(50))
    
    convex_hull <- data %>% slice(chull(x, y))
    
    ggplot(data, aes(x = x, y = y)) + 
      geom_point() + 
      geom_polygon(data = convex_hull,
                   alpha = 0.25)
    

    splancs 有一个areapl 函数来计算非自相交多边形的面积,例如上面的convex_hull。因此,我们可以这样做:

    library(splancs)
    as.matrix(convex_hull) %>% areapl
    

    【讨论】:

      猜你喜欢
      • 2014-08-19
      • 2020-09-10
      • 2016-04-27
      • 1970-01-01
      • 2012-04-16
      • 2015-04-13
      • 2018-02-19
      • 2019-02-22
      相关资源
      最近更新 更多