我正在使用网格包来显示这样的一组图:
layout <- grid.layout(2, 4)
pushViewport(viewport(layout = layout))
# print various plots
Run Code Online (Sandbox Code Playgroud)
有没有办法为整个网格布局指定标题?
dar*_*zig 16
基于类似SO问题的虚拟示例:使用ggplot2放置多画面板的标题
首先创建一个布局,其中包含所需的行数+ 1个短标题:
pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null"))))
Run Code Online (Sandbox Code Playgroud)在那里创建一些图:
print(ggplot(mtcars, aes(hp)) + geom_histogram(), vp = viewport(layout.pos.row = 2, layout.pos.col = 1:2))
print(ggplot(mtcars, aes(wt)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 1))
print(ggplot(mtcars, aes(mpg)) + geom_histogram(), vp = viewport(layout.pos.row = 3, layout.pos.col = 2))
Run Code Online (Sandbox Code Playgroud)在顶行添加标题:
grid.text("MAIN TITLE", vp = viewport(layout.pos.row = 1, layout.pos.col = 1:2))
Run Code Online (Sandbox Code Playgroud)导致:
bap*_*ste 15
其他方式:
library(gridExtra)
g = rectGrob() # dummy "plot"
grid.arrange(g, g, g, g, ncol=2, top = "Main Title")
Run Code Online (Sandbox Code Playgroud)