Вы используете ggboxplot
из ggpubr
, который основан на ggplot2
, который основан на grid
графической системе.К сожалению, grid
графика не работает с base
R графикой, поэтому настройка par
также не работает.Для размещения графиков, созданных при сборке библиотеки поверх grid
, используйте пакет grid.arrange
из gridExtra
.См. Пример ниже:
library(ggpubr)
data("ToothGrowth")
df <- ToothGrowth
grobsList <- list()
for (i in c(1:4)) {
p <- ggboxplot(df, x = "dose", y = "len", width = 0.8)
grobsList <- c(grobsList, list(p))
}
gridExtra::grid.arrange(
grobs = grobsList, ncol = 2, nrow = 2)
Вы также можете попробовать использовать marrangeGrob
, но это может создать график за пределами текущего графического окна.
Вы также можете визуализировать графики внутри циклакогда было создано желаемое количество участков:
library(ggpubr)
data("ToothGrowth")
df <- ToothGrowth
grobsList <- list()
for (i in c(1:7)) {
p <- ggboxplot(df, x = "dose", y = "len", width = 0.8)
grobsList <- c(grobsList, list(p))
if(length(grobsList) == 4) {
# print the result
gridExtra::grid.arrange(
grobs = grobsList, ncol = 2, nrow = 2)
grobsList <- list() # reset the list containing the plots
}
}
# print the remaining plots
if(length(grobsList) > 0) {
gridExtra::grid.arrange(
grobs = grobsList, ncol = 2, nrow = 2)
}