Gráfico de dispersão com histogramas marginais em ggplot2

Existe uma maneira de criar gráficos de dispersão com histogramas marginais, como no exemplo abaixo emggplot2? No Matlab, é oscatterhist() e também existem equivalentes para R. No entanto, eu não o vi para o ggplot

Iniciei uma tentativa criando gráficos únicos, mas não sei como organizá-los corretament

 require(ggplot2)
 x<-rnorm(300)
 y<-rt(300,df=2)
 xy<-data.frame(x,y)
     xhist <- qplot(x, geom="histogram") + scale_x_continuous(limits=c(min(x),max(x))) + opts(axis.text.x = theme_blank(), axis.title.x=theme_blank(), axis.ticks = theme_blank(), aspect.ratio = 5/16, axis.text.y = theme_blank(), axis.title.y=theme_blank(), background.colour="white")
     yhist <- qplot(y, geom="histogram") + coord_flip() + opts(background.fill = "white", background.color ="black")

     yhist <- yhist + scale_x_continuous(limits=c(min(x),max(x))) + opts(axis.text.x = theme_blank(), axis.title.x=theme_blank(), axis.ticks = theme_blank(), aspect.ratio = 16/5, axis.text.y = theme_blank(), axis.title.y=theme_blank() )


     scatter <- qplot(x,y, data=xy)  + scale_x_continuous(limits=c(min(x),max(x))) + scale_y_continuous(limits=c(min(y),max(y)))
none <- qplot(x,y, data=xy) + geom_blank()

e organizando-os com a função postadaaqu. Mas para encurtar a história: existe uma maneira de criar esses gráficos?

questionAnswers(9)

yourAnswerToTheQuestion