2016-07-10 115 views
-2

如何从函数生成的图创建一个ggplot对象。我正在使用函数来创建ggplot中的双Y轴图并且它可以工作,但是我无法将它转换为ggplot对象,其类ggggplot与其他ggplot对象一样。函数为ggplot对象创建ggplot

一样,如果我们有两个地块这样的:

p1 <- qplot(wt, mpg, data=mtcars) 
p2 <- ggplot(diamonds, aes(price, colour = cut)) + geom_density() 

现在我使用这些代码合并这两个和产生的第三幅:

p3 <- grid.arrange(p1,p2,ncol=2) 

它生产的情节,但我不记得后面的p3图表意味着它没有像p1p2那样呈现为ggplot

我现在不想导出为PDF或图像文件。我的想法是稍后使用p3图并与其他ggplots结合使用。

+0

请分享一些代码,您如何到目前为止已经试过。 –

回答

2

使用grid::grid.draw可以打印grid.arrange创建的gtable对象。 如果你想抑制输出相结合p1p2时,使用arrangeGrob代替grid.arrange

library(ggplot2) 
library(gridExtra) 
library(grid) 

p1 <- qplot(wt, mpg, data=mtcars) 
p2 <- ggplot(diamonds, aes(price, colour = cut)) + geom_density() 

p3 <- arrangeGrob(p1,p2,ncol=2) 
grid.draw(p3) 

enter image description here

p4 <- arrangeGrob(p3, p1, nrow=2) 
grid.draw(p4) 

enter image description here

+0

谢谢Sumedh。这真的很有帮助。 –