【发布时间】:2020-03-05 10:43:19
【问题描述】:
我有一个带有 X、Y 坐标的数据框,但我需要计算覆盖scatterplot 中所有点的区域 有没有办法画一个多边形包围所有的点并计算这个面积?
【问题讨论】:
标签: r scatter-plot
我有一个带有 X、Y 坐标的数据框,但我需要计算覆盖scatterplot 中所有点的区域 有没有办法画一个多边形包围所有的点并计算这个面积?
【问题讨论】:
标签: r scatter-plot
这是一个凸包问题。 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
【讨论】: