R: график в сетке на нескольких страницах - PullRequest
6 голосов
/ 01 ноября 2010

Я бы хотел расположить сетку 3х3 на 3 страницах PDF-файла. Я хотел бы построить в произвольных местах сетки на трех страницах. Я знаю, как организовать несколько подсюжетов, используя некоторые параметры, такие как layout=c(3,3). Я могу понять, как расположить макет 3х3 на одном графике, используя пакет сетки, а затем решить, какой график использовать. Однако я не могу понять, как разместить сетку 3х3 на 3 страницах, а затем выбрать, в какую сетку наносить.

Я надеялся, что grid.newpage() решит мою проблему, как показано ниже:

library(grid)
pdf(file="griddtest.pdf",paper="letter")
vp1 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"), 
    name = "vp1")
vp2 <- viewport(x = 0, y = 0.5, w = 0.5, h = 0.5, just = c("left", "bottom"), 
    name = "vp2")
pushViewport(vp1)
grid.text("Some drawing in graphics region 1 on page 1",y = 0.8)
grid.newpage()
pushViewport(vp2)
grid.text("Some drawing in graphics region 2 on page 2",y = 0.8)
dev.off()

но это просто генерирует вторую страницу (я предполагаю, что 'newpage' перезаписывает старую страницу, а не создает новую страницу).

Любая помощь будет принята с благодарностью!

1 Ответ

1 голос
/ 02 ноября 2010

Если у вас есть девять панелей и вы указали 3 панели в макете, например,

xyplot(runif(9) ~ 1:9 | 1:9, layout = c(1,3))

, тогда вы получите 3 графика.Для построения графика в окне графического интерфейса графики перезаписываются, но если вы сохраняете в PDF, они появляются на последовательных страницах.


РЕДАКТИРОВАТЬ: чтобы графики занимали только одну треть страницы, настройтеВысота сюжета в вызове pdf.

pdf(..., height = 3)
# ...
dev.off()

По умолчанию каждый график отображается в центре каждой страницы.При установке pagecentre = FALSE графики появляются внизу каждой страницы.В pdf я не нашел возможности сделать так, чтобы они отображались сверху.

Чтобы лучше контролировать расположение графиков, сначала сохраните их в формате eps (с помощью функции postscript) илик png.

Затем вы можете использовать sweave, чтобы создать PDF-файл, отформатированный так, как вам нравится, включая эти файлы.Либо создайте документ в выбранном вами текстовом редакторе и вручную импортируйте файлы изображений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...