我有一个ggplot2图的列表,我想添加相同的标题(Cars
到列表的每个元素
library(ggplot2)
l <- list(
ggplot(data = mtcars, aes(x = mpg, y = cyl, col = am)) + geom_point(),
ggplot(data = mtcars, aes(x = mpg, y = disp, col = am)) + geom_point(),
ggplot(data = mtcars, aes(x = mpg, y = hp, col = am)) + geom_point()
)
现在,我可以参考每个元素并添加标题,如下所示
l[[1]] + ggtitle("Cars")
l[[2]] + ggtitle("Cars")
l[[3]] + ggtitle("Cars")
但是,有没有一种方法可以立即将标题添加到列表中的所有元素?
(注意:对于一层来说,这是很愚蠢的,但是我可以将这样的示例扩展到多层。)
用户H 1回答了问题。由于ggplot2由于分层而有所不同,因此我不确定lapply()
在这种情况下是否可行。我现在了解到管道符号+
是要应用的函数。
但是添加标题并将图例放在底部具有预期的效果:
q <- lapply(l, function(x) x + ggtitle("Cars") + theme(legend.position = "bottom"))
multiplot( plotlist = q, cols = 2)
其中的代码multiplot()
被发现在这里。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句