gridExtra вращать имена строк и упорядочивать имена столбцов
У меня два вопроса
1. Когда я использую tableGrob, чтобы установить несколько имен строк для rangeGrob, как я могу повернуть имена, я заметил, что кто-то опубликовал похожий вопрос R grid.table вращение заголовка столбца. Однако я потерпел неудачу здесь
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. Когда я устанавливаю несколько xlabels для rangeGrob следующим образом, grobs довольно узкие
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)
Кажется, что каждая ширина гроба связана с каждой шириной xlabel. Как я могу сохранить ширину гроба и поместить xlabel на среднее дно гроба?
1 ответ
Решение
Данные, которые вы передаете в tableGrob, не имеют имен строк, это просто вектор, который тематически core
аргумент,
tt <- ttheme_default(base_size = 8,
core = list(fg_params=list(rot=90)))
Если вы хотите, чтобы первый gtable установил ширину объединенного gtable, используйте "first", а не "last"
rbind(gR, bt, size = "first")