You can arrange a ggplot by using a grid and arranging them custom using grid.arrange function from gridExtra package.
See the below example.
p1 <- qplot(data=mpg,cyl,displ)
p2 <- qplot(cyl,data=mpg)
#extra blob to show layout of the grid
blank_rect = rectGrob(x = unit(0.5,"npc"),y = unit(0.5,"npc"),width = unit(1,"npc"),height = unit(1,"npc"),gp=gpar(fill="grey"))
#order the pllots by chnagig the order inside grid.arrange function.
grid.arrange(p1,blank_rect,blank_rect,p2,nrow = 2)