tableGrob

时间:2018-01-16 14:50:41

标签: r gridextra gtable grob

有没有办法通过主题告诉tableGrob更改特定行的颜色和格式(粗体)?

我使用tableGrob得到以下输出:

然而,我希望达到以下美学效果,并使特定的线条变粗,并改变它们的颜色,如下例所示:

基于以下示例:enter link description here

 t1 <- ttheme_default(core=list(
        fg_params=list(fontface=c(rep("plain", 4), "bold.italic")),
        bg_params = list(fill=c(rep(c("grey95", "grey90"),
                                    length.out=4), "#6BAED6"),
                         alpha = rep(c(1,0.5), each=5))
        ))

grid.table(iris[1:5, 1:3], theme = t1)

每4行更改一行的颜色。结果如下: result

但是,我需要根据条件使其具体化。

1 个答案:

答案 0 :(得分:1)

如果你在评论中找到关于如何“找到”grobs的链接,那么你可以做以下事情:

library(grid)
library(gridExtra)

tg <- tableGrob(iris[1:5, 1:3])

for (i in c(19,24,29)) tg$grobs[[i]] <- editGrob(tg$grobs[[i]], gp=gpar(col="white"))
for (i in c(34,39,44)) tg$grobs[[i]] <- editGrob(tg$grobs[[i]], gp=gpar(fill="blue"))

grid.newpage()
grid.draw(tg)

enter image description here

如果这是常规的参数化报告,那么这是一次“一劳永逸”的操作,以确定单元格位置并应用您的自定义格式。

否则,肯定会开发一组样式函数来定位“单元格”,就像在Google工作表或Excel中一样。