ggplot список графиков в один pdf с разными макетами страниц

Я хочу создать один PDF-файл со многими страницами ggplots. Используя gridExtra, я также могу построить страницу графиков с макетом m x n (m строк графиков, n столбцов графиков).

Функция ggsave позволяет мне написать страницу графиков, даже тех, которые построены с помощью gridExtra с макетом m x n.

С помощью arrangeGrob можно даже ggsave объединить несколько страниц в один PDF-файл, если каждая страница имеет тот же макет m x n.

Мне интересно, как я могу ggsave составить список графиков с разными макетами страниц? Например, у меня есть список l длиной 3, представляющий 3 страницы.

l[[1]] — страница с макетом 2 x 2 и имеет 4 графика

l[[2]] это 2 x 1 с 2 участками

l[[3]] всего 1 x 1

Как я мог взломать ggsave, чтобы я мог записать список l в 1 файл pdf с 3 страницами с разными макетами? Графики должны отображаться в альбомной ориентации, поэтому обычно команда имеет вид

ggsave("multipage.pdf", do.call(arrangeGrob, myplots[[i]]), width=11, height=8.5)

person JCWong    schedule 17.03.2016    source источник


Ответы (1)


вы можете использовать тот же трюк с классом, что и marrangeGrob,

library(ggplot2)
library(gridExtra)
pl <- lapply(1:7, function(i) ggplot() + ggtitle(i))

ppl <- list(p1 = arrangeGrob(grobs=pl[1:4]),
            p2 = arrangeGrob(grobs=pl[5:6]),
            p3 = arrangeGrob(grobs=pl[7]))

class(ppl) <- c("arrangelist", class(pl))

ggsave("multipage.pdf", ppl)

введите описание изображения здесь

person baptiste    schedule 17.03.2016