我想用geom_abline()創建一個帶有紅色y = x + 0線的簡單散點圖。我還添加了兩條圍繞紅色y = x + 0線的藍色線條。這兩條藍線具有公式y = x-ciVal和y = x + ciVal,其中ciVal由用戶定義。落在這兩條藍線之間的散點圖中的任何點都被刪除。我有這樣的成功與下面的示例工作:在一個geom_abline周圍着色(或兩個geom_abline之間的陰影)
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))
什麼我想現在要做的就是增加情節的美感。也就是說,我不希望在紅線周圍有兩條藍線,而只是想在兩條藍線之間有一些陰影。無論這兩條藍線本身是否保留爲陰影的邊界都可以,但我寧願將它們移除。
我不知道我是否可以通過只做一個紅色的geom_abline(),並簡單地向其兩側添加一個常量陰影,或者如果我需要遮擋兩個藍色geom_ablines()之間的陰影。
我看過類似的問題(r - ggplot2 - create a shaded region between two geom_abline layers和shading area between two lines in r)。
但是,我不知道他們是否一定適用於這種情況。對於這種情況,我很難創建一個多邊形,因爲陰影區域離開了圖的軸,並且我很難確定多邊形的角,因爲ciVal值可以改變,最大值和最小值)創建軸限制的數據。
任何建議將不勝感激。
這樣看來,代碼'保持< - 符號(渣油(LM(YX-ciVal〜0)))== 1 |符號(resid(lm(y-x + ciVal_0)))== - 1'是多餘的。如果我的意圖正確,keep < - abs(x - y)> = ciVal'就足夠了。 – echasnovski
看起來正確!謝謝你注意到! – LanneR