这里和这里已经提出了类似的问题,但我似乎无法让它们适用于我的示例。如果我有一个看起来像这样的情节:
library(ggplot2)
set.seed(100)
x <- seq(0, 20, length.out=1000)
x1 <- seq(0, 18, length.out=1000)
x2 <- seq(0, 22, length.out=1000)
dat <- data.frame(x=x,
px = dexp(x, rate=0.5),
pxHi = dexp(x1, rate=0.5),
pxLo = dexp(x2, rate=0.5)
)
ggplot(dat, aes(x=x, y=px)) +
geom_line() +
geom_line(aes(x= x, y = pxHi), col = 'red') +
geom_line(aes(x= x, y = pxLo), col = 'blue') + theme_bw()
Run Code Online (Sandbox Code Playgroud)
我试图在红线和蓝线之间进行着色。我尝试使用geom_ribbon,但似乎无法让它正常工作。
关于我如何做到这一点有什么建议吗?
正如您所指出的,您确实想要geom_ribbon:
library(ggplot2)
set.seed(100)
x <- seq(0, 20, length.out=1000)
x1 <- seq(0, 18, length.out=1000)
x2 <- seq(0, 22, length.out=1000)
dat <- data.frame(x=x,
px = dexp(x, rate=0.5),
pxHi = dexp(x1, rate=0.5),
pxLo = dexp(x2, rate=0.5)
)
ggplot(dat, aes(x=x, y=px)) +
geom_ribbon(aes(x = x, ymax = pxHi, ymin = pxLo), fill = "pink") +
geom_line() +
geom_line(aes(x= x, y = pxHi), col = 'red') +
geom_line(aes(x= x, y = pxLo), col = 'blue') + theme_bw()
Run Code Online (Sandbox Code Playgroud)