From the stat_contour {ggplot2} help
library(ggplot2) library(reshape2) volcano3d <- melt(volcano) names(volcano3d) <- c("x", "y", "z") v <- ggplot(volcano3d, aes(x, y, z = z)) v + stat_contour(geom="polygon", aes(fill=..level..))