Klaus
Klaus

Reputation: 2056

strip panels lattice

My problem is to strip my panels with lattice framework.

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)
              }
 )

What I'm looking for, is: striped plot

Upvotes: 4

Views: 1152

Answers (1)

IRTFM
IRTFM

Reputation: 263362

You should not need to add the factor call around items in the conditioning section of the formula when they are already factors. If you want to make a cross between two factors the interaction function is the best approach. It even has a 'sep' argument which will accept a new line character. This is the closest I can produce:

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)

I get an error when I try to put in three factors separately and then try to use useOuterStrips. It won't accept three separate conditioning factors. I've searched for postings in Rhelp, but the only perfectly on-point question got an untested suggestion and when I tried it failed miserably.

Upvotes: 1

Related Questions