Dear Rhelp, I would like to have 6 xyplots in the same page.? Similar to (par(mfrow=c(3,3)) Found this example on the R archives. library(lattice) trellis.par.set(theme = col.whitebg()) xy <- xyplot(decrease ~ treatment, OrchardSprays, ????????????? groups = rowpos, type = "a", ????????????? auto.key = list(x = 0.2, y = 0.9, ??????????????? cex = 0.75, points = FALSE, lines = TRUE)) print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) When I changed the print() to: ?print(xy, pos=c(0.0,0.0,0.33,0.33),more = TRUE), the figure was not looking good. Also, is it possible to assign A, B, C,D, etc for each figure. a<- rnorm(1000,0,1) b<- rnorm(1000,0,2) c<- rnorm(1000,0,3) d<- rnorm(1000,0,4) par(mfrow=c(2,2)) hist(a,main="") title(main="A",adj=0) hist(b,main="") title(main="B",adj=0) hist(c,main="") title(main="C",adj=0) hist(d,main="") title(main="D",adj=0) I tried this to xyplot, but it was not working. Please help me.? Many thanks in advance, Lisa.
Dear Rhelp, I was able to plot 6 figures in one page.? I do need help in reducing the space between the title and the plot and assigning A,B,C,D,E,F to each figure library(lattice) trellis.par.set(theme = col.whitebg()) xy <- xyplot(decrease ~ treatment, OrchardSprays, ??? ??? main="Some plot", ????????????? groups = rowpos, type = "a", ????????????? auto.key = list(x = 0.2, y = 0.9, ??????????????? cex = 0.52, points = FALSE, lines = TRUE)) print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE) print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE) print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE) print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE) print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE) print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE) Thanks in advance, Lisa ----- Original Message ----- From: Lisa Daniel <lisadaniel2013 at yahoo.com> To: "r-help at r-project.org" <r-help at r-project.org> Cc: Sent: Wednesday, February 13, 2013 5:28 PM Subject: Plotting multiple xyplots in same page Dear Rhelp, I would like to have 6 xyplots in the same page.? Similar to (par(mfrow=c(3,3)) Found this example on the R archives. library(lattice) trellis.par.set(theme = col.whitebg()) xy <- xyplot(decrease ~ treatment, OrchardSprays, ????????????? groups = rowpos, type = "a", ????????????? auto.key = list(x = 0.2, y = 0.9, ??????????????? cex = 0.75, points = FALSE, lines = TRUE)) print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) When I changed the print() to: ?print(xy, pos=c(0.0,0.0,0.33,0.33),more = TRUE), the figure was not looking good. Also, is it possible to assign A, B, C,D, etc for each figure. a<- rnorm(1000,0,1) b<- rnorm(1000,0,2) c<- rnorm(1000,0,3) d<- rnorm(1000,0,4) par(mfrow=c(2,2)) hist(a,main="") title(main="A",adj=0) hist(b,main="") title(main="B",adj=0) hist(c,main="") title(main="C",adj=0) hist(d,main="") title(main="D",adj=0) I tried this to xyplot, but it was not working. Please help me.? Many thanks in advance, Lisa.
Hi Lisa You can use the page function of xyplot to do this xy <- xyplot(decrease ~ treatment, OrchardSprays, groups = rowpos, type = "a", page = function(n){ grid.text(LETTERS[j], y = 0.95, x = 0.01, default.units = "npc", just = c("left"), gp = gpar(fontsize = 12) ) }, auto.key = list(x = 0.2, y = 0.9, cex = 0.75, points = FALSE, lines = TRUE)) j = 1 print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) j = j+1 print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) j = j+1 print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) j = j+1 print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) amend x, y and grid::gp positions/values to suit There are other ways using trellis.focus and the package grid HTH Regards Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mackay at northnet.com.au At 08:28 14/02/2013, you wrote:>Dear Rhelp, > >I would like to have 6 xyplots in the same page. Similar to >(par(mfrow=c(3,3)) >Found this example on the R archives. >library(lattice) >trellis.par.set(theme = col.whitebg()) >xy <- xyplot(decrease ~ treatment, OrchardSprays, > groups = rowpos, type = "a", > auto.key = list(x = 0.2, y = 0.9, > cex = 0.75, points = FALSE, lines = TRUE)) > >print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) >print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) >print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) >print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) > > > > >When I changed the print() to: > > print(xy, pos=c(0.0,0.0,0.33,0.33),more = TRUE), >the figure was not looking good. > >Also, is it possible to assign A, B, C,D, etc for each figure. > > > >a<- rnorm(1000,0,1) >b<- rnorm(1000,0,2) >c<- rnorm(1000,0,3) >d<- rnorm(1000,0,4) >par(mfrow=c(2,2)) >hist(a,main="") >title(main="A",adj=0) >hist(b,main="") >title(main="B",adj=0) >hist(c,main="") >title(main="C",adj=0) >hist(d,main="") >title(main="D",adj=0) > > >I tried this to xyplot, but it was not working. > >Please help me. > >Many thanks in advance, >Lisa. > >______________________________________________ >R-help at 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.
Hi Lisa have a look at par.settings in ?xyplot trellis.par.get() shows the settings trellis.par.get()[[27]] $left $left$tck [1] 1 $left$pad1 [1] 1 $left$pad2 [1] 1 $top $top$tck [1] 1 $top$pad1 [1] 1 $top$pad2 [1] 1 $right $right$tck [1] 1 $right$pad1 [1] 1 $right$pad2 [1] 1 $bottom $bottom$tck [1] 1 $bottom$pad1 [1] 1 $bottom$pad2 [1] 1 as an example: par.settings = list( layout.heights = list(main = 0, sub = 0, axis.top = 0.2, top.padding = 0, bottom.padding = 0) ) HTH Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mackay at northnet.com.au At 09:10 14/02/2013, you wrote:>Dear Rhelp, > >I was able to plot 6 figures in one page. I do need help in >reducing the space between the title and the plot and assigning >A,B,C,D,E,F to each figure >library(lattice) >trellis.par.set(theme = col.whitebg()) >xy <- xyplot(decrease ~ treatment, OrchardSprays, > main="Some plot", > groups = rowpos, type = "a", > auto.key = list(x = 0.2, y = 0.9, > cex = 0.52, points = FALSE, lines = TRUE)) > > >print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE) >print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE) >print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE) >print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE) >print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE) >print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE) > >Thanks in advance, >Lisa > > > >----- Original Message ----- >From: Lisa Daniel <lisadaniel2013 at yahoo.com> >To: "r-help at r-project.org" <r-help at r-project.org> >Cc: >Sent: Wednesday, February 13, 2013 5:28 PM >Subject: Plotting multiple xyplots in same page > >Dear Rhelp, > >I would like to have 6 xyplots in the same page. Similar to >(par(mfrow=c(3,3)) >Found this example on the R archives. >library(lattice) >trellis.par.set(theme = col.whitebg()) >xy <- xyplot(decrease ~ treatment, OrchardSprays, > groups = rowpos, type = "a", > auto.key = list(x = 0.2, y = 0.9, > cex = 0.75, points = FALSE, lines = TRUE)) > >print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) >print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) >print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) >print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) > > > > >When I changed the print() to: > > print(xy, pos=c(0.0,0.0,0.33,0.33),more = TRUE), >the figure was not looking good. > >Also, is it possible to assign A, B, C,D, etc for each figure. > > > >a<- rnorm(1000,0,1) >b<- rnorm(1000,0,2) >c<- rnorm(1000,0,3) >d<- rnorm(1000,0,4) >par(mfrow=c(2,2)) >hist(a,main="") >title(main="A",adj=0) >hist(b,main="") >title(main="B",adj=0) >hist(c,main="") >title(main="C",adj=0) >hist(d,main="") >title(main="D",adj=0) > > >I tried this to xyplot, but it was not working. > >Please help me. > >Many thanks in advance, >Lisa. > > >______________________________________________ >R-help at 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.
Dear Duncan and Pascal, Thank you for the response. Duncan: I was able to fix the space between title and figure.? I would also like to? have separate main titles for each row of figures in addition to the individual titles. xy <-xyplot(decrease ~ treatment, OrchardSprays, ??? main= "Some plot", ??????? groups = rowpos, type = "a", ??????????? page???? = function(n){ ???????????????????????? grid.text(LETTERS[j], ???????????????????????? y = 0.95, ???????????????????????? x = 0.15, ???????????????????????? default.units = "npc", ???????????????????????? just = c("left"), ???????????????????????? gp = gpar(fontsize = 12,fontface="bold") ) ?????????????????????? }, ??? par.settings = c(simpleTheme(lty=1:8, col="black",lwd=2),list(layout.heights = list(main = 1.2, ?????????????????????? sub? = 0, ?????????????????????? axis.top = 0.2, ?????????????????????? top.padding? = 0.1, ?????????????????????? bottom.padding = 0)) ), ??????? auto.key = list(x = 0.2, y = 0.9, ??????? cex = 0.75, points = FALSE, lines = TRUE)) j=1 print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE) j=j+1 print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE) j=j+1 print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE) j=j+1 print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE) j=j+1 print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE) j=j+1 print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE) Pascal: I would prefer not to use panels as this is for publication purpose.? Many thanks, Lisa ----- Original Message ----- From: Duncan Mackay <mackay at northnet.com.au> To: Lisa Daniel <lisadaniel2013 at yahoo.com>; r-help-r-project.org <r-help at r-project.org> Cc: Sent: Wednesday, February 13, 2013 7:53 PM Subject: Re: [R] Plotting multiple xyplots in same page Hi Lisa have a look at par.settings in ?xyplot trellis.par.get() shows the settings trellis.par.get()[[27]] $left $left$tck [1] 1 $left$pad1 [1] 1 $left$pad2 [1] 1 $top $top$tck [1] 1 $top$pad1 [1] 1 $top$pad2 [1] 1 $right $right$tck [1] 1 $right$pad1 [1] 1 $right$pad2 [1] 1 $bottom $bottom$tck [1] 1 $bottom$pad1 [1] 1 $bottom$pad2 [1] 1 as an example: par.settings = list( layout.heights = list(main = 0, ? ? ? ? ? ? ? ? ? ? ? sub? = 0, ? ? ? ? ? ? ? ? ? ? ? axis.top = 0.2, ? ? ? ? ? ? ? ? ? ? ? top.padding? = 0, ? ? ? ? ? ? ? ? ? ? ? bottom.padding = 0)? ? ) HTH Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mackay at northnet.com.au At 09:10 14/02/2013, you wrote:>Dear Rhelp, > >I was able to plot 6 figures in one page.? I do need help in >reducing the space between the title and the plot and assigning >A,B,C,D,E,F to each figure >library(lattice) >trellis.par.set(theme = col.whitebg()) >xy <- xyplot(decrease ~ treatment, OrchardSprays, >? ? ? ? main="Some plot", >? ? ? ? ? ? ? groups = rowpos, type = "a", >? ? ? ? ? ? ? auto.key = list(x = 0.2, y = 0.9, >? ? ? ? ? ? ? ? cex = 0.52, points = FALSE, lines = TRUE)) > > >print(xy, pos = c(0.0, 0.5, 0.33, 1.0), more = TRUE) >print(xy, pos = c(0.33, 0.5, 0.66, 1.0), more = TRUE) >print(xy, pos = c(0.66, 0.5, 0.99, 1.0), more = TRUE) >print(xy, pos = c(0.0, 0.0, 0.33, 0.5), more = TRUE) >print(xy, pos = c(0.33, 0.0, 0.66, 0.5), more = TRUE) >print(xy, pos = c(0.66, 0.0, 0.99, 0.5), more = FALSE) > >Thanks in advance, >Lisa > > > >----- Original Message ----- >From: Lisa Daniel <lisadaniel2013 at yahoo.com> >To: "r-help at r-project.org" <r-help at r-project.org> >Cc: >Sent: Wednesday, February 13, 2013 5:28 PM >Subject: Plotting multiple xyplots in same page > >Dear Rhelp, > >I would like to have 6 xyplots in the same page.? Similar to >(par(mfrow=c(3,3)) >Found this example on the R archives. >library(lattice) >trellis.par.set(theme = col.whitebg()) >xy <- xyplot(decrease ~ treatment, OrchardSprays, >? ? ? ? ? ? ? groups = rowpos, type = "a", >? ? ? ? ? ? ? auto.key = list(x = 0.2, y = 0.9, >? ? ? ? ? ? ? ? cex = 0.75, points = FALSE, lines = TRUE)) > >print(xy, pos = c(0.0, 0.0, 0.5, 0.5), more = TRUE) >print(xy, pos = c(0.0, 0.5, 0.5, 1.0), more = TRUE) >print(xy, pos = c(0.5, 0.0, 1.0, 0.5), more = TRUE) >print(xy, pos = c(0.5, 0.5, 1.0, 1.0), more = FALSE) > > > > >When I changed the print() to: > >? print(xy, pos=c(0.0,0.0,0.33,0.33),more = TRUE), >the figure was not looking good. > >Also, is it possible to assign A, B, C,D, etc for each figure. > > > >a<- rnorm(1000,0,1) >b<- rnorm(1000,0,2) >c<- rnorm(1000,0,3) >d<- rnorm(1000,0,4) >par(mfrow=c(2,2)) >hist(a,main="") >title(main="A",adj=0) >hist(b,main="") >title(main="B",adj=0) >hist(c,main="") >title(main="C",adj=0) >hist(d,main="") >title(main="D",adj=0) > > >I tried this to xyplot, but it was not working. > >Please help me. > >Many thanks in advance, >Lisa. > > >______________________________________________ >R-help at 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.