用plot.gam标记参数项的轴

时间:2016-07-12 06:27:23

标签: r plot gam

我试图绘制我的gam结果。绘图适用于所有平滑项(在我的情况下为1到8),但如果我想绘制参数项(从9开始),我无法更改轴标签。无论我使用plot,plot.gam,termplot还是text,我都无法做到。有小费吗?下面是代码示例

par(mfrow=c(3,3), oma=c(1,1,1,1),pty="s",mar=c(4.5,4.5,1,1)) 
# the first three graphs work perfectly
plot.gam(model$gam,select=1,scale=0,pers=TRUE,all.terms=T,shade=T,xlab="Water depth",ylab="") 
plot.gam(model$gam,select=2,scale=0,pers=TRUE,all.terms=T,shade=T,xlab="Bottom current speed",ylab="")
plot.gam(model$gam,select=3,scale=0,pers=TRUE,all.terms=T,shade=T,xlab="Substance",ylab="")
# this graph for the parametric term is plotted but I cannot change axis labels
plot.gam(model$gam,select=9,scale=0,pers=T,all.terms=T,shade=T,xlab="AIS",ylab="")

1 个答案:

答案 0 :(得分:1)

如果您使用的是RStudio,可以点击plot.gam按钮查看F2的源代码。在R中执行plot.gam无括号。然后,您可以找到plot()替换为termplot()的某些select值。 因此,要设置x轴标签,您必须使用xlabs而不是xlab

require(mgcv) 
pa <- c(1, rep(0, 9))
term_A <- runif(10, 9, 15)
term_B <- runif(10, 1, 25)
data <- as.data.frame(cbind(pa, term_A, term_B)) 
mod <- gam(pa ~ s(term_A, k=3) + term_B, family=binomial, data=data) 
summary(mod)
par(mfrow=c(2, 2)) 
# xlab=""
plot.gam(mod, select=1, all.terms=T, shade=T, xlab="your own lab title", ylab="") 
# xlabs=""
plot.gam(mod, select=2, all.terms=T, shade=T, xlabs="your own lab title", ylab="")