2012-09-30 64 views
3

我的問題是剝離我的面板與格子框架。條板格

testData<-data.frame(star=rnorm(1200),frame=factor(rep(1:12,each=100)) 
        ,n=factor(rep(rep(c(4,10,50),each=100),4)) 
        ,var=factor(rep(c("h","i","h","i"),each=300)) 
        ,stat=factor(rep(c("c","r"),each=600)) 
) 
levels(testData$frame)<-c(1,7,4,10,2,8,5,11,3,9,6,12)# order of my frames 
histogram(~star|factor(frame), data=testData 
      ,as.table=T 
      ,layout=c(4,3),type="density",breaks=20 
      ,panel=function(x,params,...){ 
       panel.grid() 
       panel.histogram(x,...,col=1)  
       panel.curve(dnorm(x,0,1), type="l",col=2) 
       } 
) 

我在找什麼,就是: striped plot

+0

您可以在R之外添加標籤,但您應該首先檢查面板的位置是否與該標籤一致。我通過粘貼「var」和「stat」生成帶狀標籤的圖形,並且在該圖形的右半部分和左半部分中存在「h」和「i」的混合。 –

+0

您可以通過將此表達式添加到'star'值'+ rep(c(-2,2),each = 600)'中,並重繪您的繪圖來自己查看此效果。如果你的放置理論是正確的,那麼所有的左邊地塊應該被移到0的同一邊。它們不是。 –

+0

sry我真的不明白你的意思。我知道條形屬性,但我不知道如何以正確的方式改變它。什麼是真正接近Iam尋找的是: – Klaus

回答

0

你不應該需要添加因素待命項公式的調節部分時,他們已經是因素。如果您想在兩個因素之間交叉,interaction函數是最好的方法。它甚至有一個'sep'參數,它將接受一個新的行字符。這就是我能產生最接近:

h<-histogram(~star|interaction(stat, var, sep="\n") + n, data=testData , 
       as.table=T ,layout=c(4,3), type="density", breaks=20 , 
panel=function(x,params,...){ panel.grid() 
panel.histogram(x,...,col=1) 
panel.curve(dnorm(x,0,1), type="l",col=2) }) 
plot(h) 
useOuterStrips(h,strip.left = strip.custom(horizontal = FALSE), 
        strip.lines=2, strip.left.lines=1) 

我得到一個錯誤,當我試圖把在三個因素分別,然後嘗試使用useOuterStrips。它不會接受三個獨立的條件因素。我在Rhelp上搜索過帖子,但唯一完美的點上問題得到了一個未經測試的建議,當我嘗試失敗時,它慘不忍睹。

+0

Thx,如何使用屬性,它們直接在直方圖函數中用useOuterStrips更新? – Klaus

+0

我不明白你在問什麼。什麼屬性?以什麼方式使用? –

+0

我想在直方圖功能中分配strip.left等。 – Klaus