2013-05-01 8 views
3

Я пытаюсь сделать сюжет к PDF, используя следующий подход:ggplot2 страница заполнения участка в ландшафтном (PDF)

pdf('~/Desktop/test.pdf', bg = "white", paper="USr")  
p <- ggplot(df, aes(something)) + geom_bar(); 
print(p) 
# I'm actually printing a bunch of graphs to the PDF 
dev.off() 

«USr» в функции PDF является создание в PDF для печати в ландшафтном режиме. Участок создается и сосредоточен на странице, но есть большой правый/левый запас, и график не масштабируется, чтобы охватить полный доступ к нему.

Я пробовал некоторые настройки для pdf (...) и самому ggplot.Есть ли решение таким образом или мне нужно использовать специальный пакет отчетов/pdf, например sweave или knitr?

+1

Что происходит, когда вы используете 'ggsave («~ /Desktop/test.pdf ", ...)' и указать 'width' и' height' явно? – Beasterfield

+0

ggsave(), похоже, работает с высотой/шириной 8.5/11. Чтобы использовать ggsave, я должен был бы сшить все мои сюжеты в один сюжет, а затем сохранить его? У меня около 15 сюжетов, которые я хотел бы вывести на один PDF-файл. – Dave

+0

Каждый на одной странице? В этом случае (AFAIK) 'ggsave' не будет работать. – Beasterfield

ответ

8

См. this discussion; в нижней строке вы, вероятно, хотите использовать paper=special и установить ширину и высоту явно

Edit:.

Вот ленивый trick использовать ggsave с несколькими страницами,

library(ggplot2) 
plots = replicate(8, qplot(1,1), simplify=FALSE) 
library(gridExtra) 
p <- do.call(marrangeGrob, c(plots,ncol=1,nrow=1)) 

ggsave("multipage.pdf", p, width=11, height=8.5) 

(но в остальном, pdf(...) с последующим for петли просто отлично, а иногда и понятнее)

Смежные вопросы