R:网格布局标题

ncc*_*ccc 12 r

我正在使用网格包来显示这样的一组图:

layout <- grid.layout(2, 4)
pushViewport(viewport(layout = layout))
# print various plots
Run Code Online (Sandbox Code Playgroud)

有没有办法为整个网格布局指定标题?

dar*_*zig 16

基于类似SO问题的虚拟示例:使用ggplot2放置多画面板的标题

  1. 首先创建一个布局,其中包含所需的行数+ 1个短标题:

    pushViewport(viewport(layout = grid.layout(3, 2, heights = unit(c(0.5, 5, 5), "null"))))   
    
    Run Code Online (Sandbox Code Playgroud)
  2. 在那里创建一些图:

    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)
  3. 在顶行添加标题:

    grid.text("MAIN TITLE", vp = viewport(layout.pos.row = 1, layout.pos.col = 1:2))
    
    Run Code Online (Sandbox Code Playgroud)

导致:

在此输入图像描述

  • 只需相应地设置布局高度,例如`unit.c(单位(1,"行"),单位(rep(0.5,2),"npc") - 0.5*单位(1,"line")) (3认同)

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)