title: Arrange ggplots together in custom ratios and spacing
body: <p>I am trying to combine n number of barplots with one common label plot at the bottom. My problem is that grid.arrange combines the two plots in 50%-50%. I am looking for something like the layout matrix where you can specify 4 slots and first 3 to be taken up by first plot and last slot by second plot. And customise similarly depending on number of plots.</p>
  
  <p><img src="https://i.stack.imgur.com/AOuAV.jpg" alt="Result of code below"></p>
  
  <p>I have a sample code here from what I am trying:</p>
  
  <pre><code>#load libraries
  require(ggplot2)
  require(reshape)
  require(grid)
  require(gridExtra)
  
  #data creation
  #DATA
  temp&lt;-data.frame(var1=sample(0:100,100,replace=T))
  temp$var2&lt;-100-temp$var1
  temp$type&lt;-factor(c(rep("S1",50),rep("S2",50)))
  temp$label&lt;-factor(rep(1:50,2))
  temp1&lt;-melt(temp,id.var=c("type","label"))
  #LABELS
  labs1&lt;-data.frame(pos=c(1,8,22,45,50))
  labs2&lt;-data.frame(pos1=round((diff(labs1$pos)/2)+labs1$pos[1:length(labs1$pos)-1],1),
           lab=c("A","B","D","E"))
  
  #plots
  plot1&lt;-ggplot(data=temp1)+
  geom_bar(aes(x=label,y=value,fill=variable),stat="identity",space=0,width=1)+
  facet_grid(type~.)+theme_bw()+labs(x=NULL,y=NULL)+
  scale_y_continuous(expand=c(0,0))+
  theme(legend.position="none",axis.text=element_blank(),axis.ticks=element_blank())
  plot2&lt;-ggplot()+
  geom_line(data=labs1,aes(x=pos,y=-0.05),size=0.6)+
  geom_point(data=labs1,aes(x=pos,y=-0.05))+labs(x=NULL,y=NULL)+
  geom_text(data=labs2,aes(x=pos1,y=-0.1,label=lab))+
  theme_bw()+scale_x_continuous(expand=c(0,0))+scale_y_continuous(limit=c(-0.5,0))+
  theme(legend.position="none",axis.text=element_blank(),axis.ticks=element_blank())
  
  plot3&lt;-grid.arrange(plot1, plot2)
  #here perhaps there is a way to say plot1 to take up 1/3 of the plot area.
  </code></pre>
  
  <p>The two plots don't align quite perfectly. But that's another issue. And this was useful 
  <a href="https://stackoverflow.com/questions/6681145/how-can-i-arrange-an-arbitrary-number-of-ggplots-using-grid-arrange">How can I arrange an arbitrary number of ggplots using grid.arrange?</a>
  I could plot each one by one, but I would like to have the facet labels.</p>