Dear Rxperts,
Sorry about that..forgot to update the numeric part of the multipanel group
indicator...

Below is the updated code... in addition to getting rid of the curly
braces, is there a better way to control the position of
panel.text flexibly instead of hardcoding.

Thanks,
santosh

q <- data.frame(GL = rep(paste("G",1:3,sep = ""),each = 50),
G  = rep(1:3,each = 50),
D = rep(paste("D",1:5,sep = ""),each = 30),
a = rep(1:15,each = 10),
t = rep(seq(10),15),
b = round(runif(150,10,20)))

 q$grp <- paste(q$D,q$a,sep = ":")
q$grp <- ordered(q$grp, levels = unique(q$grp))
q$dcol <- unlist(sapply(q$D,function(x) switch(x, "D1" = "orange",
"D2" = "blue",
"D3" = "red",
"D4" = "seagreen",
"D5" = "black")))
q2   <-  q[order(q$G,q$D,q$a,q$t),]
ref3 <-  subset(q2, !duplicated(a))
my.theme = list(strip.border = list(col = NA),
strip.background = list(col = NA)) # Of course, I can add a series of "$"..
I don't have too many "$"s!

xyplot(b ~ t | G,data = q2,groups = grp,type = "l",as.table = T,
    layout = c(3,1), par.strip.text = list(lines = 2),
    panel = panel.superpose,
par.settings = my.theme,
panel.groups = function(x = x,
y = y,
subscripts = subscripts,
groups = groups,...,
group.number) {
        require(grid)
        panel.xyplot(x = x,y = y,
subscripts = subscripts,pch = NA,lwd = 1,type = "l",
                        col = q2$dcol[subscripts],lty = 1,cex = 0.7)
         rv0    <- ref3[ref3$G%in%unique(q2$G)[panel.number()],]
 panel.text(x=5,y=15,label=unique(rv0$GL))
         tids   <-  paste(as.character(unique(rv0$D)))
        tcols   <-  unique(rv0$dcol)
        tlty    <-  1
draw.key(list(columns = 1,between = 1,between.col = 0.5,
            text = list(lab = tids,col = tcols,cex = 0.8),title =
"Classes",cex.title = 1.1
),
        draw  =  T,vp  =  viewport(x  =  unit(0.8, "npc"), y  =  unit(0.9,
"npc")))
    },
     strip = strip.custom(strip.names = T,strip.levels = T,par.strip.text =
list(cex = 1.7,font = 2),bg = 0,var.name = "School"),
        xlab = deparse(substitute(x)),
        ylab = deparse(substitute(y)),
        main = "Overlay of Profiles by Schools and Classes",
)



On Tue, May 21, 2013 at 8:21 PM, David Winsemius <dwinsem...@comcast.net>wrote:

>
> On May 21, 2013, at 5:07 PM, Santosh wrote:
>
> > Dear Rxperts,
> > Ok.... The "curly braces" as we talked before,...
> > They appear if the "group" argument of "xyplot" function is entered as a
> > numeric value; and don't when the values are letters.
>
> At the moment you are offering an example where the group argument is
> neither numeric, nor character, but rather is a factor-classed variable. I
> cannot make any curley items appear if I change the argument to numeric.
>
> On my machine (a Mac running R 3.0.0 RC) there are no curley braces ... on
> the strips (or anywhere else.)
>
> I do not know what you mean by "keep only side 1 and 2 of the borders". It
> is possible that you want to avoid alternating tick labels and need to find
> the switch to suppress ticks labels on the upper and right sides of the
> plotting borders. Try:
>
> ?xyplot  # scales section
>
> … scales=list(alternating=c(1,1,1) ),  # 1 choice repeated for the number
> of columns
>
> --
> David.
>
> > I just figured how to hide the strip borders...and also control the ticks
> > in different axes...
> >
> > Any suggestions to remove the *curly braces* are highly welcome.
> >
> >
> > q <- data.frame(G = rep(paste("G",1:3,sep = ""),each = 50),
> > D = rep(paste("D",1:5,sep = ""),each = 30),
> > a = rep(1:15,each = 10),
> > t = rep(seq(10),15),
> > b = round(runif(150,10,20)))
> > q$grp <- paste(q$D,q$a,sep = ":")
> > q$grp <- ordered(q$grp, levels = unique(q$grp))
> > q$dcol <- unlist(sapply(q$D,function(x) switch(x, "D1" = "orange",
> > "D2" = "blue",
> > "D3" = "red",
> > "D4" = "seagreen",
> > "D5" = "black")))
> > q2   <-  q[order(q$G,q$D,q$a,q$t),]
> > ref3 <-  subset(q2, !duplicated(a))
> > my.theme = list(strip.border = list(col = NA),
> > strip.background = list(col = NA)) # Of course, I can add a series of
> "$"..
> > I don't have too many "$"s!
> >
> > xyplot(b ~ t | G,data = q2,groups = grp,type = "l",as.table = T,
> >    layout = c(3,1), par.strip.text = list(lines = 2),
> >    panel = panel.superpose,
> > par.settings = my.theme,
> > panel.groups = function(x = x,
> > y = y,
> > subscripts = subscripts,
> > groups = groups,...,
> > group.number) {
> >        require(grid)
> >        panel.xyplot(x = x,y = y,
> > subscripts = subscripts,pch = NA,lwd = 1,type = "l",
> >                        col = q2$dcol[subscripts],lty = 1,cex = 0.7)
> >         rv0    <- ref3[ref3$G%in%unique(q2$G)[panel.number()],]
> >         tids   <-  paste(as.character(unique(rv0$D)))
> >        tcols   <-  unique(rv0$dcol)
> >        tlty     <-  1
> > draw.key(list(columns = 1,between = 1,between.col = 0.5,
> >            text = list(lab = tids,col = tcols,cex = 0.8),title =
> > "Classes",cex.title = 1.1
> > ),
> >        draw  =  T,vp  =  viewport(x  =  unit(0.8, "npc"), y  =  unit(0.9,
> > "npc")))
> >    },
> >     strip = strip.custom(strip.names = T,strip.levels = T,par.strip.text
> =
> > list(cex = 1.7,font = 2),bg = 0,var.name = "School"),
> >        xlab = deparse(substitute(x)),
> >        ylab = deparse(substitute(y)),
> >        main = "Overlay of Profiles by Schools and Classes",
> > )
> >
> >
> > On Tue, May 21, 2013 at 3:00 PM, Santosh <santosh2...@gmail.com> wrote:
> >
> >> Dear Rxperts,
> >>
> >> Using the same example above, is there a way to remove the borders of
> >> multi-panel strips and control the display of the  borders of each
> panel..
> >> for example, I would like to keep only side 1 & 2 of a panel...
> >>
> >> Thanks,
> >> Santosh
> >>
> >>
> >>
> >>
> >> On Wed, May 1, 2013 at 11:11 PM, Santosh <santosh2...@gmail.com> wrote:
> >>
> >>> Thanks for all tips/suggestions..  Just a few more comments..
> >>> The same code I use with a different data set in another project does
> not
> >>> create those curly braces!
> >>>
> >>> Regards,
> >>> Santosh
> >>>
> >>>
> >>> On Wed, May 1, 2013 at 8:16 PM, Santosh <santosh2...@gmail.com> wrote:
> >>>
> >>>> Sorry about the word "brackets".. Yes, I meant curly  braces! I have
> not
> >>>> heard of "curley braces"! :).  Curly braces surrounding the values of
> >>>> "strip.levels" appear on the strip of multipanel plots.
> >>>>
> >>>> Thanks,
> >>>> Santosh
> >>>>
> >>>>
> >>>> On Wed, May 1, 2013 at 7:44 PM, David Winsemius <
> dwinsem...@comcast.net>wrote:
> >>>>
> >>>>>
> >>>>> On May 1, 2013, at 6:16 PM, Santosh wrote:
> >>>>>
> >>>>>> Dear Rxperts,
> >>>>>
> >>>>>> I have a strange situation.. I see curly brackets
> >>>>>
> >>>>> Wait right here. What do you mean by "brackets"? In some locales,
> such
> >>>>> as mine,  that might mean "[" ; in other domains... well,  who
> knows? I
> >>>>> don't see any "[".
> >>>>>
> >>>>> The Urban Legends Newsgroup used to have a saying: TWIAVBP,  which is
> >>>>> an initialism for: The World Is A Very Big Place. Pleas realize that
> >>>>> language is local.
> >>>>>
> >>>>>> around "strip.levels" in
> >>>>>> multipanel strips while using lattice::xyplot. .How do I get rid of
> >>>>> the
> >>>>>> curly brackets?
> >>>>>
> >>>>> Curly "brackets"? You mean curley braces? I see some of them in the
> >>>>> code, but why in the world would one want to remove valid
> curley-braces in
> >>>>> code? They just function as delimiters.
> >>>>>
> >>>>>
> >>>>>> For some reason, I am not able to reproduce the problem
> >>>>>> using an example below...
> >>>>>
> >>>>> What problem?  .. are you unable to reproduce? The code runs without
> >>>>> error on my machine.
> >>>>>
> >>>>>
> >>>>>> Any suggestions are highly welcome!
> >>>>>> Thanks,
> >>>>>> Santosh
> >>>>>>
> >>>>>> q <-
> >>>>>>
> >>>>>
> data.frame(G=rep(paste("G",1:3,sep=""),each=50),D=rep(paste("D",1:5,sep=""),each=30),a=rep(1:15,each=10),t=rep(seq(10),15),b=round(runif(150,10,20)))
> >>>>>> q$grp <- paste(q$D,q$a,sep=":")
> >>>>>> q$grp <-  ordered(q$grp, levels=unique(q$grp))
> >>>>>> q$dcol  <- unlist(sapply(q$D,function(x)
> >>>>>>       switch(x,"D1"="orange","D2"="blue","D3"="red",
> "D4"="seagreen",
> >>>>>> "D5"="black")))
> >>>>>> q2 <- q[order(q$G,q$D,q$a,q$t),]
> >>>>>> ref3 <- subset(q2, !duplicated(a))
> >>>>>> xyplot(b~t|G,data=q2,groups=grp,type="l",as.table=T,
> >>>>>>   layout=c(3,1), par.strip.text = list(lines = 2),
> >>>>>>   panel=panel.superpose,
> >>>>>>
> >>>>>
> panel.groups=function(x=x,y=y,subscripts=subscripts,groups=groups,...,group.number)
> >>>>>> {
> >>>>>>       require(grid)
> >>>>>>
> >>>>> panel.xyplot(x=x,y=y,subscripts=subscripts,pch=NA,lwd=1,type="l",
> >>>>>>                       col=q2$dcol[subscripts],lty=1,cex=0.7)
> >>>>>>        rv0     <-ref3[ref3$G%in%unique(q2$G)[panel.number()],]
> >>>>>>        tids    <- paste(as.character(unique(rv0$D)))
> >>>>>>       tcols   <- unique(rv0$dcol)
> >>>>>>       tlty    <- 1
> >>>>>> draw.key(list(columns=1,between=1,between.col=0.5,
> >>>>>>
> >>>>>> text=list(lab=tids,col=tcols,cex=0.8),title="Classes",cex.title=1.1
> >>>>>> ),
> >>>>>>       draw = T,vp = viewport(x = unit(0.8, "npc"), y = unit(0.9,
> >>>>> "npc")))
> >>>>>>   },
> >>>>>>
> >>>>>>
> >>>>>
> strip=strip.custom(strip.names=T,strip.levels=T,par.strip.text=list(cex=1.7,font=2),bg=0,
> >>>>>> var.name="School"),
> >>>>>>       xlab=deparse(substitute(x)),
> >>>>>>       ylab=deparse(substitute(y)),
> >>>>>>       main="Overlay of Profiles by Schools and Classes",
> >>>>>> )
> >>>>>>
> >>>>>
> >>>>
> >>>>
> >>>
> >>
> >
> >       [[alternative HTML version deleted]]
> >
> > ______________________________________________
> > R-help@r-project.org mailing list
> > https://stat.ethz.ch/mailman/listinfo/r-help
> > PLEASE do read the posting guide
> http://www.R-project.org/posting-guide.html
> > and provide commented, minimal, self-contained, reproducible code.
>
> David Winsemius
> Alameda, CA, USA
>
>

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to