[R] plotting border over map

Ray Brownrigg Ray.Brownrigg at ecs.vuw.ac.nz
Sun Mar 18 21:08:32 CET 2012


On Sat, 17 Mar 2012, uday wrote:
> I am using following codes to plot map
> 
> library(sp)
> library(rgdal)
> library(maps)
> library(gplots)
> library(clim.pact)
> library(fields)
> source("/R/PlotGridded2DMap.R")
> source("/R/image.plot.fix.R")
> source("/R/image.plot.plt.fix.r")
> 
> seasonal_plot<-function(input,lonll=-180,latll=-90,lonres=5.,latres=3.75,wr
> ite_file=TRUE,The_title=NULL){ if(is.null(The_title)){
>     for (ki in 1:length(input)){
>       The_title[[ki]]<-sprintf("XCH4 CH4 (ppb)",ki)
>     }
>   }
>   if(!is.list(input)){input=list(input)}
>  lon.ll     <- lonll               #lower left corner of grid
>  lat.ll     <- latll                #lower left corner of grid
>  lon.res    <- lonres               #resolution in degrees longitude
>  lat.res    <- latres            #resolution in degrees latitude
> 
> for (ki in 1:length(input)){
> # plot for whole world
>   sh<-dim(input[[ki]]$avg)
>  numpix.x   <- sh[1]                 #number of pixels in x directions in
> grid
>  numpix.y   <- sh[2]                 #number of pixels in y directions in
> grid
>  #print(ki)
>  #print(input[[ki]]$avg)
>  mat        <- t(input[[ki]]$avg)# length
>  xs         <- seq(lon.ll,by=lon.res,length=dim(mat)[2])+0.5*lon.res
> #centers of cells
>  ys         <- seq(lat.ll,by=lat.res,length=dim(mat)[1])+0.5*lat.res
> #centers of cells
>  col=rich.colors(32)
> 
>  xlims      <-c(-180,180)
>  ylims      <-c(-90,90)
> 
>  old.par    <- par(no.readonly = TRUE)
>  par(mar=c(par()$mar[1:3],4))
>  cex.set    <- 1.2
>  par(cex=cex.set)
>  par(mgp=c(2.0,0.3,0))
>  par(tcl=-0.1)
>  opath     <- ("/Result/scitm3/") # path to save image
>  if(write_file){png(file=paste(opath,The_title[[ki]],".png",sep="
> "),width=1000,height=800,pointsize=23)}
> 
>   if(!write_file){x11()}
> 
> image.plot.fix(x=xs,y=ys,z=input[[ki]]$avg,zlim=c(1600,2000),nlevel=64,col=
> col,xlab="Longitude",ylab="Latitude",legend.width=0.03,
> offset=0.05,legend.only=F,lg=F)
> 
> map(database = "world", add=TRUE,col="black")
> 
>  title(paste(The_title[[ki]]))
>  if(write_file){dev.off()}
> 
> }
> }
> 
> when I try to use map(database = "world", add=TRUE,col="black")
> I get error
> Error in map(database = "world", add = TRUE, col = "black") :
>   unused argument(s) (database = "world")
> 
> if I comment this line then I get plot but it does not have world border.
> 
> I really got stuck at this point and I do not know how to fix it.
> 
Well, you haven't provided a minimal reproducible example, so we can only guess what is in 
/R/PlotGridded2DMap.R
/R/image.plot.fix.R
/R/image.plot.plt.fix.r
but my guess is you are redefining the map() function in there.

HTH,
Ray



More information about the R-help mailing list