I have been playing with bi-variate choropleth maps and have gotten stuck on how to create a 2d legend similar to the one by Joshua Stevens shown here:
To illus
Not a complete answer, but I think you need to play with guides.
ggplot(legendGoal, aes(Var1,Var2, col=as.factor(value), fill=as.factor(value))) + geom_tile() + guides(col = guide_legend(nrow = 3))