我又一次遇到了一个复杂的ggplot。我想使用构面网格在一个绘图中绘制不同的绘图类型。
我希望我可以用下面的例子来说明我的观点:我想制作一个类似于第一张图片的情节,但上面的情节应该看起来像第二张图片。我已经找到了使用子集函数的技巧,但我不能只在一个图中添加垂直线,更不用说两个或三个(或指定颜色)。
代码:
a <- rnorm(100)
b <- rnorm(100,8,1)
c <- rep(c(0,1),50)
dfr <- data.frame(a=a,b=b,c=c,d=seq(1:100))
dfr_melt <- melt(dfr,id.vars="d")
#I want only two grids, not three
ggplot(dfr_melt,aes(x=d,y=value)) + facet_grid(variable~.,scales="free")+
geom_line(subset=.(variable=="a")) + geom_line(subset=.(variable=="b"))
#Upper plot should look like this
ggplot(dfr,aes(x=d,y=a)) + geom_line() + geom_line(aes(y=c,color="c"))+
geom_hline(aes(yintercept=1),linetype="dashed")+
geom_hline(aes(yintercept=-2),linetype="dashed")