我正在构建几个ggplot
对象,并将它们保存到列表中,要显示它们,我使用grid.arrange
,这里是一个示例:
chain = matrix(rnorm(1000), nrow=100)
numParams = ncol(chain)
plots = list()
for (col in 1:numParams) local({
hist = ggplot() + geom_density(mapping = aes_(chain[, col]))
plots[[col]] <<- hist + labs(x="", y="")
})
title = "A title"
do.call("grid.arrange", c(plots, nrow=numParams, top=title))
到目前为止,一切正常,但是我希望使用latex2exp
以乳胶表达式作为标题,例如
title = TeX("values $\\lambda$")
使用它会给我以下错误
do.call(“ grid.arrange”,c(plots,nrow = numRow,top = title))中的错误:第二个参数必须是列表
这是由于当c(plots, nrow=numParams, top=title)
是一个表达式时,title
返回了一个表达式。
有人知道如何解决这个问题吗?
编辑1:一些变体和错误
do.call("grid.arrange", list(plots, nrow=2, top=title))
给出错误信息:
gList(list(nrow = list(data = list(),layers = list(,)中的错误:“ gList”中仅允许使用“ grobs”
plots["nrow"] = 2
plots["top"] = title
do.call("grid.arrange", plots)
给出错误信息:
paste(“ values”,“”,lambda,,,,“”)中的错误:找不到对象“ lambda”