Skip to content

vis.gam zlab problem

3 messages · wildlifeduke, David Winsemius

#
I am using the mgcv package to develop vis.gam plots and having trouble
figuring out how to relabel the z-axis (image attached).  It is currently
labeled as "linear predictor," but I would like to change it to a different
name.  Currently I am using this code:
vis.gam(model1,theta=320,ticktype="detailed",color="gray",nCol=12,
zlab="BCS")  

However, when run R states: 
Error in persp.default(m1, m2, z, col = col, zlim = c(min.z, max.z), xlab =
view[1],  : 
  formal argument "zlab" matched by multiple actual arguments



Any assistance would be greatly appreciated!!

-Jared http://r.789695.n4.nabble.com/file/n3946213/BCS_Plot.jpeg 

--
View this message in context: http://r.789695.n4.nabble.com/vis-gam-zlab-problem-tp3946213p3946213.html
Sent from the R help mailing list archive at Nabble.com.
#
On Oct 27, 2011, at 6:13 PM, wildlifeduke wrote:

            
`vis.gam` creates that name and it gets pasted into a string that  
result in a collision with your supplied argument at the point where  
they a both passed to `persp`. You will need to hack that code to  
circumvent, or extract the relevant vectors from the gam fit an dbuild  
a plot on your own.

The code to replace would be

  if (type == "link")
         zlab <- paste("linear predictor")

Or perhaps intercept the handling of "stub"'s construction at the end:

             stub <- paste(ifelse("xlab" %in% dnm, "", ",xlab=view[1]"),
                 ifelse("ylab" %in% dnm, "", ",ylab=view[2]"),
                 ifelse("main" %in% dnm, "", ",zlab=zlab"), ",...)",
                 sep = "")
             if (color == "bw") {
                 op <- par(bg = "white")
                 txt <- paste("persp(m1,m2,z,col=\"white 
\",zlim=c(min.z,max.z) ",
                   stub, sep = "")
                 eval(parse(text = txt))
                 par(op)
             }
             else {
                 txt <-  
paste("persp(m1,m2,z,col=col,zlim=c(min.z,max.z)",
                   stub, sep = "")
                 eval(parse(text = txt))