我正在尝试使用gridExtra
包来排列由ggplot2
生成的几个图。
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
is.character
进行了一个粗略的测试,这些字符被传递给 textGrob,但表达式无法通过测试。解决方法是直接传递 textGrob,如下所示。 - baptiste