使用 visreg 控制构面列号

Controlling facet column number with visreg

虽然我很喜欢使用包 visreg 来可视化我的回归,但有一件事我还无法控制:分面时的列数。例如,请参见以下逐因子曲线广义加性回归:

library(dplyr)
library(mgcv)
library(visreg)
data(airquality)
test <- gam(
    Ozone ~ s(Temp, by = Month),
    data = airquality %>% mutate(Month = as.factor(Month))
)

如果我这样做

visreg(test, xvar = "Temp", by = "Month", gg = TRUE)

我得到一个 1 行 5 列的因子曲线。

有趣的是,如果我把 gg = TRUE 去掉,它就变成了 2 行。但无论哪种情况,我都希望能够在分面时控制列数和行数。到目前为止,我通过操作 visreg 的省略号参数或直接尝试操作生成的 ggplot 对象都没有成功。

因此,例如,如果我想用 visreggg = TRUE 进行 3 行 2 列的操作,我最好的机会是什么——或者是否有另一个包是推荐?

您只需修改 ggplot 对象并按照通常的方式添加 facet_wrap

p <- visreg(test, xvar = "Temp", by = "Month", gg = TRUE)
p + facet_wrap(vars(Month), nrow = 3)

您实际上不需要先创建 p,这会产生相同的结果:

visreg(test, xvar = "Temp", by = "Month", gg = TRUE) +
  facet_wrap(vars(Month), nrow = 3)