Сохранение графиков методом grid_draw вместо gridExtra

Я использовал gridExtra, чтобы создать 2 графика рядом друг с другом, и я могу сохранить объект с помощью ggsave

Однако графики в gridExtra смещены, поэтому я использовал этот метод

 #Method 2 - gtable
 require(gtable)
 #Extract Grobs
 g1<-ggplotGrob(left)
 g2<-ggplotGrob(right)
 #Bind the tables
  g<-gtable:::cbind_gtable(g1, g2, "first")
 #Remove a row between the plots
 g <- gtable_add_cols(g, unit(-1,"cm"), pos=ncol(g1))
 #draw
 grid.newpage()
 grid.draw(g)

этот метод описан в этой ссылке

Опасности выравнивания графиков в ggplot

Это прекрасно работало для моих графиков, но когда я сохранил

object <- grid.draw(g)

объект имеет значение NULL, когда я пытаюсь посмотреть на него, и я не уверен, как сохранить его как png

метод gridExtra можно сохранить как объект и сохранить с помощью

ggsave('g.png',width=6,height=4,dpi=600)

как бы вы сохранили вывод grid.draw? Я попытался сохранить его с помощью пользовательского интерфейса Rstudio, но он сохраняет только один график, а не оба рядом друг с другом.


person zazu    schedule 14.10.2015    source источник


Ответы (2)


Забыл упомянуть, что ширина и высота png () будут зависеть от сюжета, который у вас есть, так что поиграйте с ним.

Вот как сохраняется объект gtable:

в зависимости от сюжета, размеры png можно подогнать под сюжет

png("g.png",width = 1000, height = 600, units = "px") 
grid.draw(g) 
dev.off()
person zazu    schedule 15.10.2015

Это должно сработать.

png("g.png", plot=grod.draw(g), width = 1000, height = 600, units = "px")
dev.off()
person mhonda    schedule 30.01.2019