首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在R中绘制GAM响应时,visreg在y轴上显示地毯

在R中绘制GAM响应时,visreg在y轴上显示地毯
EN

Stack Overflow用户
提问于 2021-02-12 04:04:47
回答 1查看 70关注 0票数 0

我想使用visreg绘制GAM中变量的响应。我使用visreg的gg=TRUE特性来指定ggplot主题元素。我关闭了partials并设置了rug = TRUE。然而,我在x和y轴上都得到了一块地毯(而不仅仅是x轴)。我不知道如何在保留x轴地毯的同时关闭y轴地毯。下面是我用于绘图的代码:

代码语言:javascript
复制
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 = TRUEpartial = FALSE绘制响应,而不使用任何ggplot元素时,我得到了正确的x轴地毯。任何帮助都将不胜感激!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-02-12 04:20:53

可将ggplot对象内的相关层设置为NULL。下面是gam函数的示例。

代码语言:javascript
复制
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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66161997

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档