在grid.arrange

时间:2019-01-29 13:57:22

标签: r ggplot2

我正在构建几个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”

0 个答案:

没有答案