Trying to overlay color graphics (something like below) with ggplot2

Trying to use geom_tile, but ggplot does not allow me to add 2 color scales. Here is a sample code.
df <- data.frame(expand.grid(1:5,1:5)) df$z1 <- runif(nrow(df)) df$z2 <- runif(nrow(df)) g1 <- ggplot(df,aes(Var1,Var2)) + theme_bw() #layer 1 g11 <- g1 + geom_tile(aes(fill=z1),alpha=0.5) + scale_fill_gradient(low="white", high="red") #layer 2 g12 <- g1 + geom_tile(aes(fill=z2),alpha=0.5) + scale_fill_gradient(low="white", high="green") g11 g12
One way to do this is to make 2 layers in different groups. But the result simply does not look intuitive.
mdf=melt(df,'id'=1:2) g2 <- ggplot(mdf,aes(Var1,Var2,fill = factor(variable),alpha = value)) + geom_tile() + scale_fill_manual(values = c('red','green')) + theme_bw() g2

source share