2016-07-10 116 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。這真的很有幫助。 –