もう一度、Imは複雑なggplotに直面しました。ファセットグリッドを使用して、1つのプロット内にさまざまなプロットタイプをプロットしたいと思います。
次の例を使用して、私のポイントを明確にできることを願っています。最初の画像に似たプロットを作成したいのですが、上のプロットは2番目の画像のようになります。サブセット関数を使用してトリックをすでに見つけましたが、2つまたは3つ(または色を指定する)はもちろん、1つのプロットだけに垂直線を追加することはできません。
コード:
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")