It may not help the original poster, but here's a solution based on what Greg said above:
# Load plotrix library(plotrix) # Create a new layout to divide the graphics in 2, the first one (displaying the persp() graph) being 4 times larger than the second one (displying the legend) layout(matrix(c(1,2),1,2,byrow=T),widths=c(4,1)) # Setup the color palette, here for exemple a 20-step heatmap from white through yellow to red colors grey.colors <- colorRampPalette( c("white", "yellow", "black") ) color <- grey.colors(20) # Run the persp() command with right definition of facets and colors zfacet <- z[-1,-1] + z[-1,-ncol(z)] + z[-nrow(z),-1] + z[-nrow(z),-ncol(z)] persp(x, y, z, col=color[cut(zfacet, nbcol)], theta=...) # Stetup and display the legend, col.labels <- c("0.0","0.2","0.4","0.6","0.8","1.0") # For z values between 0 and 1 plot(0:10,type="n",axes=FALSE,xlab="",ylab="") # Blank plot required for the legend to be added to color.legend(1,1.5,9,8,col.labels,color,gradient="y",align="rb") -- View this message in context: http://r.789695.n4.nabble.com/how-to-draw-the-legend-about-color-from-3d-picture-tp866475p2281321.html Sent from the R help mailing list archive at Nabble.com. ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.