gridExtra旋转行名并排列列名

时间:2018-08-09 15:51:32

标签: r grid gridextra

我有两个问题

1。当我使用 tableGrob arrangeGrob 设置多个行名称时,如何旋转名称,我注意到有人发布了类似的问题{{3} }。但是,我在这里失败了

library(grid)
library(gridExtra)
gs <- lapply(1:9, function(ii)
grobTree(rectGrob(gp=gpar(fill=ii, alpha=0.5)), textGrob(ii)))
gR <- arrangeGrob(grobs=gs, ncol=4,
                  top="top label",
                  right="right label")
tt <- ttheme_default(base_size = 8,
                     rowhead=list(fg_params=list(rot=90)))
lt <- tableGrob(c("", "134442243", "5425376", "938372378"),
                theme = tt)
cb <- cbind(lt, gR, size = "last")
grid.newpage()
grid.draw(cb)

2。当我为 arrangeGrob 设置多个xlabel时,这些grob非常狭窄

tt <- ttheme_default(colhead=list(fg_params = list(parse=F)))
bt <- tableGrob(matrix(c("    1    ", "2", "3", "4", ""),ncol = 5), theme = tt)
rb <- rbind(gR, bt, size = "last")
# the width of each grob is changed by `bt`
grid.newpage()
grid.draw(rb)

似乎每个grob宽度都与每个xlabel宽度相关。如何保持grob宽度并将xlabel放在grob的中间底部?

1 个答案:

答案 0 :(得分:0)

您传递给tableGrob的数据没有行名,它只是一个向量,以core参数为主题,

tt <- ttheme_default(base_size = 8,
                     core = list(fg_params=list(rot=90)))

如果您要第一个表设置组合表的宽度,请使用“第一个”而不是“最后一个”

rbind(gR, bt, size = "first")