Created
November 28, 2013 09:12
-
-
Save menugget/7689179 to your computer and use it in GitHub Desktop.
Convert values to color levels
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#this function converts a vector of values("z") to a vector of color | |
#levels. One must define the number of colors. The limits of the color | |
#scale("zlim") or the break points for the color changes("breaks") can | |
#also be defined. when breaks and zlim are defined, breaks overrides zlim. | |
val2col<-function(z, zlim, col = heat.colors(12), breaks){ | |
if(!missing(breaks)){ | |
if(length(breaks) != (length(col)+1)){stop("must have one more break than colour")} | |
} | |
if(missing(breaks) & !missing(zlim)){ | |
zlim[2] <- zlim[2]+c(zlim[2]-zlim[1])*(1E-3)#adds a bit to the range in both directions | |
zlim[1] <- zlim[1]-c(zlim[2]-zlim[1])*(1E-3) | |
breaks <- seq(zlim[1], zlim[2], length.out=(length(col)+1)) | |
} | |
if(missing(breaks) & missing(zlim)){ | |
zlim <- range(z, na.rm=TRUE) | |
zlim[2] <- zlim[2]+c(zlim[2]-zlim[1])*(1E-3)#adds a bit to the range in both directions | |
zlim[1] <- zlim[1]-c(zlim[2]-zlim[1])*(1E-3) | |
breaks <- seq(zlim[1], zlim[2], length.out=(length(col)+1)) | |
} | |
CUT <- cut(z, breaks=breaks) | |
colorlevels <- col[match(CUT, levels(CUT))] # assign colors to heights for each point | |
return(colorlevels) | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment