使用 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
对象都没有成功。
因此,例如,如果我想用 visreg
和 gg = 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)
虽然我很喜欢使用包 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
对象都没有成功。
因此,例如,如果我想用 visreg
和 gg = 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)