Funtion为ggplot对象创建了ggplot

时间:2016-07-10 18:28:34

标签: r ggplot2

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

就像我们有两个这样的情节:

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

现在我使用这些代码组合了这两个代码并制作了第三个图:

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

它产生了情节,但我不记得以后的p3情节,意味着它没有像ggplotp1一样呈现为p2

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

1 个答案:

答案 0 :(得分:2)

使用grid::grid.draw打印由gtable创建的grid.arrange个对象。 如果您希望在合并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