сохранить align.plot () - PullRequest
       7

сохранить align.plot ()

2 голосов
/ 26 мая 2011

Пришло к графикам:

pl1 <- qplot(x=trade.date, y=price1, data=finalfutff, geom='line')+scale_y_continuous(name='')+scale_x_date(name='', expand=c(0,0))+opts(panel.background=theme_rect(),panel.grid.major=theme_blank(), panel.grid.minor=theme_blank(), plot.margin = unit(c(1,0,0,0), "lines"))

и

pl2 <- qplot(x=trade.date, y=adj1, data=finalfutff, geom='line')+scale_y_continuous(name='')+scale_x_date(name='', expand=c(0,0))+opts(panel.background=theme_rect(),panel.grid.major=theme_blank(), panel.grid.minor=theme_blank(), plot.margin = unit(c(1,0,0,0), "lines"))

Используйте align.plot (from ggExtra) для выравнивания графиков (вместо facet_grid, потому что мне нравится иметь галочки и текст на оси xна всех графиках), но когда я пытаюсь сохранить файл с помощью ggsave:

ggsave(plot=align.plot(pl1, pl2), "file.png", width=9.8, height=6.9)

я получаю:

Error in ggsave(plot = align.plots(pl1, pl2), filename = "file.png",  : 
  plot should be a ggplot2 plot

Как сохранить файл align.plot?

Ответы [ 2 ]

1 голос
/ 26 мая 2011

Отредактировано

Вызов ggsave с align.plots не работает, поскольку align.plots не возвращает объект класса ggplot.

Это означает, что вам придется позвонить на одно из устройств печати, например, png или pdf.Например:

png("filename.png")
align.plots(pl1, pl2)
dev.off()

См. ?png, чтобы указать параметры для указания высоты, ширины, точек на дюйм и т. Д. Возможно, вы захотите явно указать высоту и ширину, если вы не хотите использовать настройки по умолчанию 7дюймы.

Список и ссылки на все устройства печати, поддерживаемые R (т. е. png, pdf и т. д.), см. ?Devices

1 голос
/ 26 мая 2011

Разве вы не можете просто использовать grid.arrange() (вместо align.plot()) и использовать стандартное png устройство вместо ggsave(), которое ожидает объекты ggplot?

dsamp <- diamonds[sample(nrow(diamonds), 1000), ]
p1 <- qplot(carat, price, data=dsamp, colour=clarity)
p2 <- qplot(carat, price, data=dsamp, colour=clarity, geom="path")
library(gridExtra)
png("a.png")
grid.arrange(p1, p2) # add ncol=2 to arrange as two-column
dev.off()

enter image description here

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