我想创建一个看起来像这样的图表,但是使用我自己的数据作为灰色拟合线的最小值/最大值
这是一个简单的情节。
df <- data.frame(x1 = c(0,1,2,3,4),
y1 = c(2,3,4,5,6),
x2 = c(0,1,2,3,4),
y2 = c(3,4,6,7,8),
x3 = c(0,1,2,3,4),
y3 = c(0,0,1,2.5,2))
g <- ggplot(data=df) +
geom_line(aes(x1,y1,color="red")) +
geom_line(aes(x2,y2)) +
geom_line(aes(x3,y3))
我希望像示例中的透明灰色填充区域位于红线后面和2条黑线之间。我该如何做到这一点?
答案 0 :(得分:2)
您可以使用多边形功能。
x <- 1:50
y_low <- rnorm(length(x), 150, 25) + 5*x
y_high <- rnorm(length(x), 250, 25) + 5*x
plot(x, y_high, type='l', ylim = c(000, 600))
polygon(c(x, rev(x)), c(y_high, rev(y_low)), col = "grey40")
另一个选项(如评论中所述)是添加geom_ribbon
属性。您可以为间隔指定客户值。以下完成了工作:
g <- ggplot(data=df) + geom_ribbon(aes(x=x1, ymin=y2, ymax=y3))
+ geom_line(aes(x1,y1,color="red"))
+ geom_line(aes(x2,y2)) + geom_line(aes(x3,y3))