Управление номером столбца фасетов с помощью visreg - PullRequest
2 голосов
/ 28 апреля 2019

Пока я наслаждаюсь использованием пакета 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-столбцовый фактор-за-кривыми,

enter image description here

Как ни странно, если я уберу gg = TRUE, он станет 2-рядным.Но в любом случае мне бы хотелось иметь возможность контролировать количество столбцов и строк при фасетировании.До сих пор мне не удавалось ни манипулировать аргументом с многоточием visreg, либо напрямую пытаться манипулировать результирующим объектом ggplot.

Так, например, если бы я хотел сделать visreg с gg = TRUE с 3 рядами, 2 столбцами, каков был бы мой лучший шанс - или есть другой пакет, который рекомендуется?

1 Ответ

3 голосов
/ 28 апреля 2019

Вы можете просто изменить объект ggplot и добавить facet_wrap обычным способом:

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

enter image description here

Сначала вам не нужно создавать p, это дает тот же результат:

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