在 gridExtra 中添加带下标的主标题时出错

Error while adding main title with subscript in gridExtra

我正在尝试安排一些由 ggplot2 使用 gridExtra 包生成的图。

library(ggplot2)
library(gridExtra)
p1 <- ggplot(iris, aes(Sepal.Length, Sepal.Width)) + geom_point()
p2 <- ggplot(iris, aes(Sepal.Length, Petal.Length)) + geom_point()
p3 <- ggplot(iris, aes(Species, Sepal.Width)) + geom_point()
p4 <- ggplot(iris, aes(Sepal.Width, Petal.Width)) + geom_point()
grid.arrange(main="CO2Exp", p1, p2, p3, p4, ncol=2)

当我尝试使用主标题时,下面的标题工作正常。

grid.arrange(main="CO2Exp", p1, p2, p3, p4, ncol=2)

但是当我尝试使用 expression 获取下标时,

grid.arrange(main=expression(paste(CO[2], "Exp")), p1, p2, p3, p4, ncol=2)

我收到以下错误

Error in valid.data(rep(units, length.out = length(x)), data) : 
  no 'grob' supplied for 'grobwidth/height' unit

如何解决这个问题?

我正在使用 R_3.1.3、gridExtra_0.9.1 和 ggplot2_1.0.1

显式创建 textGrob

grid.arrange(main = textGrob(label = expression(paste(CO[2], "Exp"))), 
             p1, p2, p3, p4, ncol=2)

Edit (16/07/2015):随着 gridExtra >= 2.0.0,main 参数已重命名为 top.有关详细信息,请参阅 ?arrangeGrob