I've actually been playing with something along these lines myself recenlty (a customised pairs plot in my case), and I'd suggest using GGally::ggmatrix to create your array of plots:
x <- c(0.9, 1.1, 1.0)
y <- c(2.0, 1.9, 2.1)
z <- c(3.1, 2.9, 3.0)
df <- data.frame(x,y,z)
# Contains ggmatrix function...
library(GGally)
#> Loading required package: ggplot2
xy <- ggplot(df)+geom_point(aes(x=x,y=y))
zy <- ggplot(df)+geom_point(aes(x=z,y=y))
xz <- ggplot(df)+geom_point(aes(x=x,y=z))
mm <- ggmatrix(list(xy,zy,xz,NULL),nrow=2,ncol=2)
mm
I ended up using the multiplot function described here:
... mainly for the reason that it allows to set a layout adjusting the relative size of the xy plot and the z axes of the other two plots.
See here for an example usage:
I noticed that this function (multiplot) apparently proliferated into a few different R packages, and wondered if there is a specific reason why it's not integrated centrally in one of the ggplot or gg* packages...
I also figured that another option to achieve this combined plot would be the patchwork package by @thomasp85:
... but I refrained from using it just now in a workflow I'm going to share, because it's not yet deployed to CRAN, and requires installation from GitHub. Are there any plans to put it on CRAN soon?