I am trying to create a plot that overlaps two previously created graphs. The result was very close to what I want, but I was not able to adjust the interval between each bar. Below are the codes I used to create the boxes,
a <- ggplot(aes(y = SCORE, x = DATE, fill = CATEGORY), data = data_R1000) + geom_boxplot() + ylim(20,100) + labs(title = "Russell 1000") + theme(legend.position="bottom") + scale_fill_hue(c=150, l=70) b <- ggplot(aes(y = SCORE, x = DATE, fill = CATEGORY), data = data_R1000) + geom_boxplot(width=0.8) + ylim(20,100) + labs(title = "US_MARKETOR") + theme(legend.position="bottom") + theme(panel.background = element_rect(fill = "transparent",colour = NA)) + theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank()) + scale_fill_hue(c=50, l=85) # extract gtable g1 <- ggplot_gtable(ggplot_build(a)) g2 <- ggplot_gtable(ggplot_build(b)) # overlap the panel of 2nd plot on that of 1st plot pp <- c(subset(g1$layout, name == "panel", se = t:r)) g <- gtable_add_grob(g1, g2$grobs[[which(g2$layout$name == "panel")]], pp$t, pp$l, pp$b, pp$l) ## what I dd is to plot a new viewports. vp=viewport(x=0.5,y=0.5,height=1,width=1) pushViewport(vp) grid.draw(g) upViewport()
and the result is shown below 
I am wondering how to make the vertical lines of the drawers at the top level overlap with the ones below them, while I can keep the top bars narrower (i.e. how can I add the spacing between consecutive columns so that they are not immediately adjacent together?)
* In addition, I will also need to shift the entire rectangle horizontally to the plot. Is there a way that I can adjust the horizontal axis x position without changing the x axis? *
Thank you very much for your help!