2017-06-12 40 views
1

我有一種情況,我有兩種不同類型的情節,我需要將它們一起繪製在一起,並在其頂部標上標題。我必須使用格子包,因此ggplot2不是一個選項。由於從格子包中添加條帶到單個點圖案

我這裏有一個示例代碼:

library(lattice) 
library(latticeExtra) 
X<-rnorm(100) 
Y<-rnorm(100) 
S<- rnorm(500) 
df1<-data.frame(X,Y,S) 

p1<-dotplot(X~Y, data=df1) 

p2<-dotplot(X~S, data=df1) 

#combining plots 
c(p1,p2) 
+2

一種方法是重新排列數據並在公式中使用標準的'|'表示法來創建不同的面板。像'dotplot(X〜value | variable,data = reshape2 :: melt(df1,id.vars =「X」))''。 – Henrik

+0

非常感謝,但我的重新安排不會真正有幫助,因爲我對這兩個地塊有兩種不同類型的組 –

回答

0

正如評論所說,你需要堆變量YS,並創建一個額外的列指示每個值來自哪個變量從。

> df2 <- reshape(df1, varying=2:3, v.names='Value', timevar='Var', times=c('Y','S'), direction='long') 
> head(df2) 
      X Var  Value id 
1.Y -2.3720450 Y 2.3965643 1 
2.Y 0.8082862 Y 0.0215850 2 
3.Y 0.3774736 Y -0.6385176 3 
4.Y 0.7161986 Y -0.3908185 4 
5.Y -0.3633583 Y -0.9611222 5 
6.Y -0.3484920 Y 3.3387813 6 

然後

> dotplot(X ~ Value | Var, data = df2) 

應該做你想要什麼。