[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