如果我只有 X、Y 坐标,如何计算 R 中多边形的面积?

How calculate the area of a polygon in R, if I only have X,Y coordinates?

我有一个带有 X、Y 坐标的数据框,但我需要计算覆盖 scatterplot 中所有点的面积 有没有一种方法可以绘制一个围绕所有点的多边形并计算这个面积?

这是一个凸包问题。 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