How can I add a title to a tableGrob plot?

Nate Reed picture Nate Reed · Jul 26, 2015 · Viewed 13.2k times · Source

I have a table, and I want to print a title above it:

t1 <- tableGrob(top_10_events_by_casualties, cols=c("EVTYPE", "casualties"), rows=seq(1,10))
grid.draw(t1)

A similar question was asked here: Adding text to a grid.table plot

I've tried something similar and it doesn't work:

> title <- textGrob("Title",gp=gpar(fontsize=50))
> table <- gtable_add_rows(t1, 
+                          heights = grobHeight(title) + padding,
+                          pos = 0)
Error: is.gtable(x) is not TRUE

Answer

baptiste picture baptiste · Feb 13, 2016

Not sure what the problem was, but here is a working example:

enter image description here

library(grid)
library(gridExtra)
library(gtable)

t1 <- tableGrob(head(iris))
title <- textGrob("Title",gp=gpar(fontsize=50))
padding <- unit(5,"mm")

table <- gtable_add_rows(
     t1, 
     heights = grobHeight(title) + padding,
     pos = 0)
table <- gtable_add_grob(
    table, 
    title, 
    1, 1, 1, ncol(table))

grid.newpage()
grid.draw(table)