Reputation: 2543
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
b,
plot(cars),
ncol=1
)
gives me the following error
Error in gList(list(grobs = list(list(x = 0.5, y = 0.5, width = 1, height = 1, : only 'grobs' allowed in "gList"
Let's assume my second graph has to come out of the plot
function. How would one convert that output to a grob
-like object so it plays nicely with grid.arrange
?
Upvotes: 12
Views: 6863
Reputation: 77116
you can try with gridGraphics
library(gridGraphics)
grab_grob <- function(){
grid.echo()
grid.grab()
}
plot(cars)
g <- grab_grob()
b <- ggplot(cars,aes(x=speed,y=dist))+geom_line()
grid.arrange(
b,g,
ncol=1
)
or, alternatively, use gridBase.
Upvotes: 10