gráfico de densidad bidireccional combinado con gráfico de densidad unidireccional con regiones seleccionadas en r

# data 
set.seed (123)
xvar <- c(rnorm (1000, 50, 30), rnorm (1000, 40, 10), rnorm (1000, 70, 10))
yvar <-   xvar + rnorm (length (xvar), 0, 20)
myd <- data.frame (xvar, yvar)


# density plot for xvar
            upperp = 80   # upper cutoff
            lowerp = 30   # lower cutoff
            x <- myd$xvar
            plot(density(x))
            dens <- density(x)
            x11 <- min(which(dens$x <= lowerp))
            x12 <- max(which(dens$x <= lowerp))
            x21 <- min(which(dens$x > upperp))
            x22 <- max(which(dens$x > upperp))
            with(dens, polygon(x = c(x[c(x11, x11:x12, x12)]),
                y = c(0, y[x11:x12], 0), col = "green"))
             with(dens, polygon(x = c(x[c(x21, x21:x22, x22)]),
                y = c(0, y[x21:x22], 0), col = "red"))
            abline(v = c(mean(x)), lwd = 2, lty = 2, col = "red")
# density plot with yvar
    upperp = 70  # upper cutoff
    lowerp = 30   # lower cutoff
    x <- myd$yvar
    plot(density(x))
    dens <- density(x)
    x11 <- min(which(dens$x <= lowerp))
    x12 <- max(which(dens$x <= lowerp))
    x21 <- min(which(dens$x > upperp))
    x22 <- max(which(dens$x > upperp))
    with(dens, polygon(x = c(x[c(x11, x11:x12, x12)]),
        y = c(0, y[x11:x12], 0), col = "green"))
     with(dens, polygon(x = c(x[c(x21, x21:x22, x22)]),
        y = c(0, y[x21:x22], 0), col = "red"))
    abline(v = c(mean(x)), lwd = 2, lty = 2, col = "red")

Necesito trazar un diagrama de densidad de dos vías, no estoy seguro de que haya una mejor manera que la siguiente:

ggplot(myd,aes(x=xvar,y=yvar))+
    stat_density2d(aes(fill=..level..), geom="polygon") +
    scale_fill_gradient(low="blue", high="green") + theme_bw()

Quiero combinar los tres tipos en uno (no sabía si puedo crear una gráfica de dos vías en ggplot), no hay ninguna prioridad sobre si las parcelas de la solución están en ggplot o base o mezcladas. Espero que este sea un proyecto factible, considerando la robustez de R. Personalmente prefiero ggplot2.

Nota: el sombreado inferior en esta gráfica no es correcto, el rojo siempre debe ser inferior y la verde superior en los gráficos xvar e yvar, correspondientes a la región sombreada en el gráfico de densidad xy.

Editar: Última expectativa en el gráfico (gracias a seth y jon por una respuesta muy cercana) (1) eliminar etiquetas de ticks de ejes y ejes, etc. para hacerlo compacto
(2) las alineaciones de las cuadrículas para que las marcas de trama y cuadrículas del medio se alineen con las marcas laterales y las etiquetas y el tamaño de las parcelas se vea igual.

Respuestas a la pregunta(3)

Su respuesta a la pregunta