R 一条几何图形周围的着色(或两条几何图形之间的着色)

R 一条几何图形周围的着色(或两条几何图形之间的着色),r,ggplot2,R,Ggplot2,我正在尝试使用geom_abline()创建一个带有红色y=x+0线的简单散点图。我还添加了两条围绕红色y=x+0线的蓝色线。这两条蓝线具有公式y=x-ciVal和y=x+ciVal,其中ciVal由用户定义。散点图中位于这两条蓝线之间的任何点都将被删除。我成功地使用了以下示例: library(ggplot2) set.seed(1) x = runif(20,0,3) y = runif(20,0,2) ciVal <- 0.5 myMax = max(c(x,y)) myMin =

我正在尝试使用geom_abline()创建一个带有红色y=x+0线的简单散点图。我还添加了两条围绕红色y=x+0线的蓝色线。这两条蓝线具有公式y=x-ciVal和y=x+ciVal,其中ciVal由用户定义。散点图中位于这两条蓝线之间的任何点都将被删除。我成功地使用了以下示例:

library(ggplot2)
set.seed(1)
x = runif(20,0,3)
y = runif(20,0,2)

ciVal <- 0.5
myMax = max(c(x,y))
myMin = min(c(x,y))

keep <- sign(resid(lm(y-x-ciVal ~ 0)))==1 | sign(resid(lm(y-x+ciVal ~ 0)))==-1

data <- data.frame(dp = paste0("DataPoint",1:sum(keep==TRUE)), x = x[keep], y = y[keep])
data$dp <- as.character(data$dp)

ggplot(data = data, aes(x=x,y=y)) + geom_point(size=0.5) + geom_abline(intercept = 0, color = "red", size = 0.25) + geom_abline(intercept = ciVal, color ="blue", size = 0.25) + geom_abline(intercept = -1*ciVal, color ="blue", size = 0.25) + scale_x_continuous(limits = c(myMin, myMax)) +
  scale_y_continuous(limits = c(myMin, myMax))
库(ggplot2)
种子(1)
x=runif(20,0,3)
y=runif(20,0,2)

ciVal我认为您需要以下内容:

data <- data.frame(dp = paste0("DataPoint",1:sum(keep==TRUE)), x = x[keep], y = y[keep])
data$dp <- as.character(data$dp)
data2 <- data.frame(x = seq(myMin, myMax, 0.01), y = seq(myMin, myMax, 0.01))

ggplot(data = data, aes(x=x,y=y)) + 
  geom_point(size=2) + 
  geom_ribbon(data=data2, aes(x=x, ymin = y-ciVal, ymax = y+ciVal), fill = "lightgrey") +
  geom_abline(intercept = 0, color = "red", size = 0.25) + 
  geom_abline(intercept = ciVal, color ="blue", size = 0.25) + 
  geom_abline(intercept = -1*ciVal, color ="blue", size = 0.25) + 
  scale_x_continuous(limits = c(myMin, myMax)) +
  scale_y_continuous(limits = c(myMin, myMax)) +
  scale_x_continuous(expand = c(0, 0)) + scale_y_continuous(expand = c(0, 0))

数据这段代码似乎是正确的!谢谢你注意到这一点!