title: Add labels to a plot made by grid.arrange from multiple plots
body: <p>I have a data frame in <a href="https://drive.google.com/a/ntu.edu.vn/file/d/0B0uadF4WsOJ4RUs1SXU1WVBMaEU/view" rel="nofollow noreferrer">this link</a>
  and I have code following:</p>
  
  <p><div class="snippet" data-lang="js" data-hide="false" data-console="true" data-babel="false">
  <div class="snippet-code">
  <pre class="snippet-code-html lang-html prettyprint-override"><code>load("Fish11a.rda")
  df=Fish11a
  df=data.frame(Time=as.factor(df[,6]),RoiID=df[,3],Diameter=df[,8])
  df$Time.hours=rep(1:10,each=104*max(df$RoiID),len=nrow(df))
  df$Time &lt;- factor(df$Time, levels=rev(levels(df$Time)))
  df1=split(df,df$Time.hours)
  
  br=lapply(split(df,df$Time.hours), function(x) {
    br=data.frame(x[c(1,round(nrow(x)*(1:4)/4)),])
    br$Min=c(0,15,30,45,60)
    return(br)
  })
  
  hle1=function(dfr,br,tenplot) {
    require(ggplot2)
    require(gtable)
    library(grid)
    
    #start plot
    g=ggplot(data=dfr, aes(x=factor(RoiID), y=Time, fill = Diameter)) +
      theme_minimal()  + coord_fixed(ratio=1) +
      geom_tile(colour = NA, width = 1.5, height = 1)+ 
      scale_fill_gradient(low="black",high="white")+
      theme(axis.title.x=element_blank(),
            axis.text.x=element_blank(),
            axis.ticks.x=element_blank())+
      scale_x_discrete(expand = c(0,0))+
      scale_y_discrete(name="Time (min)",
                       expand = c(0,0),
                       breaks=br$Time,labels=br$Min)+
      theme(axis.ticks.length = unit(0, "lines"))+
      ggtitle(tenplot)+
      theme(plot.title = element_text(size = 10, face = "bold"))
    
    # calculate segment coordinates
    segs &lt;- c(.39, .23, .23, .15)
    segs_center &lt;- cumsum(segs) - segs/2
    seg_ticks &lt;- cumsum(segs)[1:3]
    seg_labels &lt;- paste("S",seq_along(segs))
    
    # create graphicaal objects and gather as tree
    grobs &lt;- grobTree(linesGrob(c(0,1), c(-1,-1),gp=gpar(lwd=3)),
                      segmentsGrob(x0=seg_ticks, x1=seg_ticks, y0=0, y1=-4,gp=gpar(lwd=2.5)),
                      textGrob(x=segs_center, y=-5, 
                               label = seg_labels, hjust = 0, gp = gpar(cex =.8)))
    
    # insert grobsTree in as annotation
    g &lt;- g + annotation_custom( grob = grobs,  
                                ymin = -.3, ymax = 0.2, 
                                xmin = .25, xmax = max(dfr$RoiID))
    
    # override clipping for plotting outside of plotting area
    gt &lt;- ggplot_gtable(ggplot_build(g))
    gt$layout$clip[gt$layout$name == "panel"] &lt;- "off"
    grid.newpage()
    #grid.draw(gt)
    gt
  }
  
  #Draw and save plots
  
  tiff(file="test11.tiff", width = 45,height=28, units = 'cm', res = 300)
  require(gridExtra)   
  grid.arrange(hle1(df1$"1",br$"1",c("1 hour-feed")),
               hle1(df1$"2",br$"2",c("2 hours-feed")),
               hle1(df1$"3",br$"3",c("3 hours-feed")),
               hle1(df1$"4",br$"4",c("4 hours-feed")),
               hle1(df1$"5",br$"5",c("5 hours-feed")),
               hle1(df1$"6",br$"6",c("6 hours-feed")),
               hle1(df1$"7",br$"7",c("7 hours-feed")),
               hle1(df1$"8",br$"8",c("8 hours-feed")),
               hle1(df1$"9",br$"9",c("9 hours-feed")),
               hle1(df1$"10",br$"10",c("10 hours-feed")),
               ncol=5,top=textGrob("Fish 11 - feed",gp=gpar(fontsize=18)))
  dev.off()</code></pre>
  </div>
  </div>
  </p>
  
  <p>I want to add labels (26ppm, 39ppm) to the left of each row of plots and move the title (Fish 11- feed) down, like the image below:
  (P/S: the strikethrough of (Fish 11-feed) and the (Not this position) are notes, not included in the image).</p>
  
  <p>Looking forward to your kind help. Thank you very much!<br>
  <a href="https://i.stack.imgur.com/SMsiR.jpg" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/SMsiR.jpg" alt="enter image description here"></a></p>