I just updated R, R Studio, and a bunch of packages including ggplot2 and gridExtras on my Mac. Now gridExtras is failing in basic plotting with the error:
"only 'grobs' allowed in "gList""
Here's some code that should work but does not:
library(ggplot2) p1 = qplot(1:10,rnorm(10)) p2 = qplot(1:10,rnorm(10)) library(gridExtra) grid.arrange(p1, p2, ncol=2, main = "Main title")
This dumps out 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" In addition: Warning message: In grob$wrapvp <- vp : Coercing LHS to a list
Any help is appreciated!
It is because grid.arrange
does not have a main
parameter anymore (seems to have been eliminated around Summer 2015 with the 2.0.0 release) and thus thinks that the main=
parameter must be a grob. To replace the main
, you can use the top
parameter now (as well as a bottom
, left
, and right
).
So this works for example:
library(ggplot2) p1 = qplot(1:10,rnorm(10)) p2 = qplot(1:10,rnorm(10)) library(gridExtra) grid.arrange(p1, p2, ncol=2,top="Main Title")
The message is a bit confusing, that is because it looks at all the parameters it does not know and assumes they might be grobs
(graphical objects) that it can plot. A confusing error message like this is the price you pay for that flexibility.
Note: - if you have a lot of grobs
you should consider packing them all into a list and use the form:
grid.arrange( grobs = list(p1,p2,...),...
Here is what that above code results in:
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With