试试:
data_Z_pairs <- data.frame(Z = c(0.20, 0.1, 0.03), Z_tild = c(0.15, 0.03, 0.02))
library(ggplot2)
t0 <- 0.05
ggplot(data_Z_pairs, aes(Z, Z_tild))+
geom_point() +
geom_abline(slope=1, intercept = 0, linetype = "dashed") +
geom_rect(aes(xmin=0, xmax=t0, ymin=0, ymax=t0), alpha = 0, colour = "black")+
geom_rect(aes(xmin = t0, xmax = Inf, ymin = -Inf, ymax = Inf), fill = "gray80", alpha = 0.2)+
geom_rect(aes(xmin = -Inf, xmax = t0, ymin = t0, ymax = Inf), fill = "gray80", alpha = 0.2)+
geom_rect(aes(xmin = -Inf, xmax = 0, ymin = -Inf, ymax = t0), fill = "gray80", alpha = 0.2)+
geom_rect(aes(xmin = -0, xmax = t0, ymin = -Inf, ymax = 0), fill = "gray80", alpha = 0.2)+
theme_bw() +
theme(panel.grid = element_blank())
如果您实际上只希望框上方和右侧的区域为阴影,则按如下方式调整浅灰色 geom_rect 层:
ggplot(data_Z_pairs, aes(Z, Z_tild))+
geom_point() +
geom_abline(slope=1, intercept = 0, linetype = "dashed") +
geom_rect(aes(xmin=0, xmax=t0, ymin=0, ymax=t0), alpha = 0, colour = "black")+
geom_rect(aes(xmin = t0, xmax = Inf, ymin = 0, ymax = Inf), fill = "gray80", alpha = 0.2)+
geom_rect(aes(xmin = 0, xmax = t0, ymin = t0, ymax = Inf), fill = "gray80", alpha = 0.2)+
theme_bw() +
theme(panel.grid = element_blank())
或者使用geom_polygon 可以通过提供一个带有角坐标的单独数据框来实现相同的结果:
pos <- data.frame(x = c(0, 0, Inf, Inf, t0, t0, 0),
y = c(t0, Inf, Inf, 0, 0, t0, t0))
ggplot(data_Z_pairs, aes(Z, Z_tild))+
geom_point() +
geom_abline(slope=1, intercept = 0, linetype = "dashed") +
geom_rect(aes(xmin=0, xmax=t0, ymin=0, ymax=t0), alpha = 0, colour = "black")+
geom_polygon(data = pos, aes(x, y), fill = "gray80", alpha = 0.2)+
theme_bw() +
theme(panel.grid = element_blank())
由reprex package (v2.0.0) 于 2021-04-20 创建