我想使用visreg绘制GAM中变量的响应。我使用visreg的gg=TRUE特性来指定ggplot主题元素。我关闭了partials并设置了rug = TRUE。然而,我在x和y轴上都得到了一块地毯(而不仅仅是x轴)。我不知道如何在保留x轴地毯的同时关闭y轴地毯。下面是我用于绘图的代码:
library(visreg)
visreg(gam, "OISST_Temp_new", partial = FALSE, rug = 2,
line = list(col = "black"),fill = list(fill ="lightblue"), gg=TRUE)+
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_blank(),
panel.border = element_rect(linetype = "solid", fill = NA),
text = element_text(size=10, color = "black"),
axis.text = element_text(size = 10, color = "black"))当我运行这段代码时,我得到了这个图:

gam是一个mgcv::gam对象,OISST_Temp_new是我想要可视化的响应。
当我指定gg=FALSE并只使用rug = TRUE和partial = FALSE绘制响应,而不使用任何ggplot元素时,我得到了正确的x轴地毯。任何帮助都将不胜感激!
发布于 2021-02-12 04:20:53
可将ggplot对象内的相关层设置为NULL。下面是gam函数的示例。
library(mgcv)
eg <- gamSim(2,n=n,scale=.5)
b5<-gam(y~s(x) + s(z),data=eg$data)
v <- visreg(b5, "x", partial = FALSE, rug = 2,
line = list(col = "black"),fill = list(fill ="lightblue"), gg=TRUE)+
theme(panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
panel.background = element_blank(),
axis.line = element_blank(),
panel.border = element_rect(linetype = "solid", fill = NA),
text = element_text(size=10, color = "black"),
axis.text = element_text(size = 10, color = "black"))
v$layers[[3]] <- NULL
v

https://stackoverflow.com/questions/66161997
复制相似问题