Ответ 1
Вы можете изменить вариант макета для каждого ggplot с помощью ggplot_gtable
, а затем отобразить все графики с помощью grid.arrange
.
library(ggplot2)
library(gridExtra)
## create a dummy ggplot
(g1 <- ggplot(mtcars, aes(wt, mpg)) +
geom_text(aes(label=rownames(mtcars)), size=6, angle=45) +
theme(plot.margin = unit(rep(1, 4), "cm")))
Очевидно, что текстовые метки не распространяются за пределы области графика. Но следующий код позволяет просто:
gg_table <- ggplot_gtable(ggplot_build(g1))
gg_table$layout$clip[gg_table$layout$name=="panel"] <- "off"
grid.draw(gg_table)
Создайте gg_table для каждой панели, затем используйте grid.arrange
, чтобы отобразить все:
grid.arrange(gg_table, gg_table, gg_table, gg_table, ncol=2)
Я знаю, что это трудоемкий процесс, но вы можете написать функцию для создания нескольких ggplots и gg_tables, чтобы сэкономить время.