[R] Plotting multiple xyplots in same page
Lisa Daniel
lisadaniel2013 at yahoo.com
Thu Feb 14 04:00:04 CET 2013
Dear Duncan,
Thank you. It helped a lot.
I was able to get it correct though I couldn't get it working under simpleTheme() (for publication purpose).
#this gave me the correct format.
library(grid)
library(lattice)
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 = 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))
#pdf("trial.pdf",width=12)
#jpeg("trial.jpeg",quality=100,width=680,height=480)
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)
#dev.off()
# I tried the same with simpleTheme(), but I am not getting it correct, (the lines are colored):
pset <- simpleTheme(lty = 1:8, col="black",lwd=2)
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 = list(pset,
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)
#the output from the below code is B&W, but space between title and figure not corrected
pset <- simpleTheme(lty = 1:8, col="black",lwd=2)
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 = pset,
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)
Also, I would like to create a main title for the first row and second row of figures.
Many thanks in advance,
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.
More information about the R-help
mailing list