我有一些对象,希望将它们一起绘制在一页上,并为每个对象设置单独的标题。目前,我有一个包含所有绘图标题的向量,我将其传递给lapply中的ggtitle函数,但它只将此向量的第一个条目添加到每个图中。
以下是一个简单而丑陋的最小示例:
library(ggplot2)
library(gridExtra)
#My 'data'
A.a <- rnorm(10)
A.b <- rnorm(30)
lmnames <- ls(pattern = "A.*")
titlenames <- c("Plot A", "Plot B")
plotlist <- list()
#I have a more complex ggplot function in reality, but I'm using qplot here as a placeholder.
plotlist <- lapply(lmnames, FUN=function(x,y){qplot(get(x)) + ggtitle(y)}, y=titlenames)
grid.arrange(grobs = plotlist)
看起来是这样的:
![使用lapply中的ggtitle标签不正确](https://istack.dev59.com/xIagg.webp)
lmnames <- ls(pattern = "A.*")
那样,并自动命名它们,而不是像您的示例中手动进行命名和对象列表?我之所以问这个问题,是因为在我的实际情况中,我有超过2个要绘制的对象。 - KerrBermget
可以帮助,但通常最好不要让太多对象留在工作区中。在R中,将它们保持在一个列表中通常是更好的策略。 - baptiste