Dear Rxperts.. Just figured how to add a text at a custom location in panel.groups..
use grid.text(x=unit(value1,"npc"),y=unit(value2,"npc"),label="label content") With this, I hope to stop flogging such a valuable black horse! :) On Wed, May 22, 2013 at 10:35 AM, Santosh <santosh2...@gmail.com> wrote: > Dear Rxperts, > Using the above example, I have been playing around using viewport under > "panel-function(...) {...}" block in conjunction with > "panel.groups=function(..) {xyplot.}" code block.. I have not bee > successful so far.. I was wondering if it is possible to pass user-defined > functions (including data driven text annotations) in both "panel" and > "panel.groups" arguments? > > Thanks so much.. > Santosh > > > On Tue, May 21, 2013 at 10:04 PM, Santosh <santosh2...@gmail.com> wrote: > >> 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.