[R-sig-Geo] symbols in spplot

Roger Bivand Roger.Bivand at nhh.no
Wed Feb 4 11:46:49 CET 2009


On Wed, 4 Feb 2009, Peter van Horssen wrote:

> Dear all,
>
> I have a plot problem which is related to the 'contourlines on a plot 
> question' from a while ago.
>
> I have a  map with 144 polygons (squares), for each square we calculate the 
> mean flight direction (of birds).
> What I try to plot is a map with the samplesize as a
> greyscale in the polgons and an arrow on top depicting the mean direction of 
> that square.
> The polygonmap with greyscale is easily plotted with spplot.
> The arrows with mean direction are a bit more difficult. Most sources
> point towards the 'grid' package or towards arrows(). Both draw arrows
> with xy pairs (form > to) in graph coordinates.
> However 'mysymbols' in the library TeachingDemos plots a arrow symbol
> with a direction 'dir' (in radians) and a fixed length, just what I need.
> Unfortunately these arrows only plot with 'plot' command (see attached code) 
> and therefore do not allign
> with the plot resulting from ssplot. As you can see  the arrows are plotted 
> as a pch 'symbol'.

If you try to use only base graphics, you may find this easier to sort out 
initially - so make the greyscale plot with image() if the data are 
gridded or plot() if irregular polygons - more intervention will be needed 
to choose the colours and to provide a legend, then overplot using 
my.symbols(), which seems to be a base graphics function, if I've found 
the right one. Otherwise you'll need to find a way to draw the arrows by 
for example constructing a SpatialLines object of arrows, and using 
sp.lines in the sp.layout= argument.

Hope this helps,

Roger

>
> I tried to construct a 'sp.points' element for the sp.layout
> with the my.symbols ( .....) argument but this doesn't work
> The arrow.sp$pch is NULL and when I manually force the my.symbol(..) in it by 
> :
> ####
> arrow.sp$pch <- 
> my.symbols(raster.midpoint$raster.mid.x1,raster.midpoint$raster.mid.x2,ms.arrows, 
> angle= Data$rad, inches=0.5, adj=0.5, lwd=1.5, code = 2, col = 'blue')
> ####
> the spplot command generates an error
>
> Question:
> is there an obvious solution tot this (relative simple) problem ?
> if not, is there a way to 'allign' de plots from spplot and plot (the 
> arrowplot) ?
>
>
>
> thanks in advance
>
>
> ##plot raster##
> radarcirkels.sp <- list("sp.polygons", radarcirkels)
> circle2.sp <- list("sp.polygons", circle2, add= TRUE)
> turbines.sp <- list("sp.points", turbines, pch=18, add= TRUE, col = red')
> metmast.sp <- list("sp.points", metmast, pch = 19, col = 'red', add= TRUE)
> turbine.radar.layout <- list(radarcirkels.sp, circle2.sp, turbines.sp, 
> metmast.sp)
> colors <- shadepalette("darkgreen","white",n=20)
> spplot (raster1["n"],col.regions=colors,at=c(0,10,50,100,200,300), sp.layout 
> = turbine.radar.layout)
>
> ##plot arrows ##
> library(TeachingDemos)
> plot(raster)
> plot(radarcirkels, add=TRUE)
> plot(circle2, add= TRUE)
> plot(turbines, pch=18, add= TRUE, col = 'red')
> plot(metmast, pch = 19, col = 'blue', add= TRUE)
> plot(raster,pch=my.symbols(raster.midpoint$raster.mid.x1,raster.midpoint$raster.mid.x2,
>     ms.arrows, angle= Data$rad, inches=0.5, adj=0.5, lwd=1.5, code = 2, col 
> = 'blue'), add=TRUE)
>
>

-- 
Roger Bivand
Economic Geography Section, Department of Economics, Norwegian School of
Economics and Business Administration, Helleveien 30, N-5045 Bergen,
Norway. voice: +47 55 95 93 55; fax +47 55 95 95 43
e-mail: Roger.Bivand at nhh.no




More information about the R-sig-Geo mailing list