[R-sig-Geo] Several gstat variograms on a single page
Michal Gallay
mgallay01 at Queens-Belfast.AC.UK
Sun Apr 29 13:09:59 CEST 2007
Dear R Users,
I'd like to ask you for help. I am R beginner, tackling R for about three
months. I'd like to produce variograms with 0, 1st, 2nd order detrending
for 30 ascii grid files containing elevation data.
I've got problem with a simple thing but as it seems to me not as easy one
as I thought. I hope I just can't see because of my eyes.
I'd like to plot three gstat variograms in one row on one page, to give
them a main title (just single one for all three of the plots), and for
each of the plots a subtitle, controlling the fontsize.
At first I used following approach:
#Calculation of the variogram and store it in a variable var...
g <- gstat(id = "xyz.values",
formula=z~1,
locations = ~x+y,
data = xyz.values,
set = list(fraction = 0.33, width = 2))
var.0ot <- variogram(g)
g <- gstat(id = "xyz.values",
formula=z~x+y,
locations = ~x+y,
data = xyz.values,
set = list(fraction = 0.33, width = 2))
var.1ot <- variogram(g)
g <- gstat(id = "xyz.values",
formula= z~x + y + I(x*y) + I(x^2) + I(y^2),
locations = ~x+y,
data = xyz.values,
set = list(fraction = 0.33, width = 2))
var.2ot <- variogram(g)
#Store the plot it in a variable plot.var...
plot.var.0ot <- plot(var.0ot, pch=3, cex=0.5, col="red",
main="No trend removed")
plot.var.1ot <- plot(var.1ot, pch=3, cex=0.5, col="red",
main="1st order trend removed")
plot.var.2ot <- plot(var.2ot, pch=3, cex=0.5, col="red",
main="2st order trend removed")
#Print the variograms into regions as specified
print(plot.var.0ot, split=c(1,1,3,1), more=T)
print(plot.var.1ot, split=c(2,1,3,1), more=T)
print(plot.var.2ot, split=c(3,1,3,1), more=F)
The variograms were plotted OK, however, via that approach I couldn't
figure out how to change the font size of the subtitles of each graph
(specified by main="No trend" etc.)'par'or 'title' didn't work or I didn't
use them right way. Further, I wasn't able to plot the main title
positioned above the three subtitles and graphs.
So I thought the problem will be sorted if I use 'grid' package as
plot.gstat Variogram function obeys 'lattice'.
I've created a viewport of 3 by 3 grid layout (after Paul Murrell
http://www.stat.auckland.ac.nz/~paul/grid/grid.html#docs) and viewport
tree. First row accommodates main title. This works fine. The second row
and first column includes just the subtitle 1, second column subtitle 2,
third column subtitle 3.
Third row is dedicated to the variogram plots. However, they are not
plotted into the viewports plot1, plot2, plot3, but on the whole page.
The approach was as follows:
top.vp <- viewport(layout = grid.layout(3,3,widths=unit(c(1,1,1), c("null",
"null", "null")), heights=unit(c(1,1,1), c("lines", "lines", "null"))))
vp.main.title <- viewport(layout.pos.col=c(1:3),layout.pos.row=1,
name="vp.main.title") vp.subtitle1 <-
viewport(layout.pos.col=1,layout.pos.row=2, name="vp.subtitle1")
vp.subtitle2 <- viewport(layout.pos.col=2,layout.pos.row=2,
name="vp.subtitle2") vp.subtitle3 <-
viewport(layout.pos.col=3,layout.pos.row=2, name="vp.subtitle3") vp.plot1
<- viewport(layout.pos.col=1,layout.pos.row=3, name="vp.plot1") vp.plot2 <-
viewport(layout.pos.col=2,layout.pos.row=3, name="vp.plot2") vp.plot3 <-
viewport(layout.pos.col=3,layout.pos.row=3, name="vp.plot3")
splot <- vpTree(top.vp, vpList(vp.main.title, vp.subtitle1, vp.subtitle2,
vp.subtitle3,vp.plot1, vp.plot2, vp.plot3))
pushViewport(splot)
seekViewport("vp.main.title")
grid.text("main title", gp=gpar(cex=1.2))
seekViewport("vp.subtitle1")
grid.text("subtitle 1", gp=gpar(cex=0.8))
seekViewport("vp.plot1")
plot(var.0ot, pch=3, cex=0.5, col="red")
I much appreciate any suggestions and criticism.
Thank you very much in advance.
Michal
--
Michal Gallay
Postgraduate Research Student
School of Geography, Archaeology and Palaeoecology
Queen's University
Belfast BT7 1NN
Northern Ireland
Tel: +44(0)2890 273929
Fax: +44(0)2890 973212
email: mgallay01 at qub.ac.uk
www: www.qub.ac.uk/geog
More information about the R-sig-Geo
mailing list