test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
)
鉴于以上测试数据,我想执行以下操作:
(1)绘制类似于以下内容的线:Plotting two variables as lines using ggplot2 on the same graph
(2)为这些线添加总体置信带(线可以看作点),类似于:Find points over and under the confidence interval when using geom_stat / geom_smooth in ggplot2
我知道如何分别处理它们,但不确定如何将它们组合在一个图中。
答案 0 :(得分:0)
在this post中,您可以检查答案之一是使用geom_ribbon
而不是geom_line
。这应该回答(2)。关于(1),可以按照您在提到的链接中所说的相同方法进行绘制。
让我们假设您想将var0保持在x轴上,并相对于var1和var2作图。
为此,您必须先收集var1和var2
test_data <-
data.frame(
var0 = 100 + c(0, cumsum(runif(49, -20, 20))),
var1 = 150 + c(0, cumsum(runif(49, -10, 10))),
var2 = 250 + c(0, cumsum(runif(49, -10, 10)))
) %>%
gather(key="var",value="value",var1:var2)
结果如下:
> head(test_data)
var0 var value
1 100.00000 var1 150.0000
2 85.67636 var1 146.4407
3 76.86862 var1 151.6061
4 79.46151 var1 143.6943
5 96.86709 var1 147.8999
6 91.20310 var1 157.2294
现在,要进行相应的绘图,您必须按新的组变量“ var”(包含组“ var1”和“ var2”的名称)进行绘图,并为上下限绘制功能区geom_ribbon
,并进行geom_line
调用以绘制实际线条。
test_data %>%
ggplot(aes(x=var0,y=value,group=var)) +
geom_ribbon(aes(ymin=value*0.95,ymax=value*1.05),fill="grey70") +
geom_line()
这将产生: