如何计算两条线之间的正负多边形区域?

时间:2017-06-14 18:28:17

标签: r ggplot2

我试图通过横截面调查来计算地表的净变化。

我有每个调查的分数和一条线,我有兴趣找到这些线之间的区域。但是,我想计算区域为正(“填充”)或负(“切割”),具体取决于哪条测线位于顶部,表示地表是否有增益或损失。此外,这些调查通常会产生复杂的多边形,切割和填充都发生在不同位置的同一调查中。

可悲的是,每个测量的起点和终点都不同,所以我不能只在每个X处减去Y值。当将起点和终点连接在一起时,我对真实区域感兴趣。

我在计算线之间的总多边形面积方面取得了一些成功,但我完全不知道如何使用多边形和具有正面和负面区域的面积。

一些示例数据和显示我正在尝试计算的内容的图表如下:

x1 <- c(1.5, 2.3,3,3.2,4.1, 5)
y1 <- c(6, 4.5, 3, 2.5, 1.1,0.7)
x2 <- c(0.5,1.5, 2.5, 3.7, 5, 5.7)
y2 <- c(5.5, 4.5, 3.2, 2.5, 1.5,0.9)
lines <- as.data.frame(cbind(x1, y1, x2, y2))

poly_lines <- rbind(setNames(lines[,1:2],c('x','y')),
                 setNames(lines[6:1,3:4],c('x','y')))

library(ggplot2)
ggplot(lines) + 
  geom_line(aes(x=x1, y=y1)) + 
  geom_line(aes(x=x2, y=y2)) +
  geom_polygon(data = poly_lines, aes(x = x,y = y), fill = "grey")+ 
  theme_classic()+
  geom_point(aes(x=x1, y=y1)) + 
  geom_point(aes(x=x2, y=y2)) +
  xlab("x")+
  ylab("y")

我想要实现的示例图片:

0 个答案:

没有答案