我在R中有一维数据向量,我想找到对应于这个数据的热图颜色.例如:
data = c(12,32,33,41,5)
Run Code Online (Sandbox Code Playgroud)
然后我想找到一个与该矢量对应的HEX颜色矢量 - 比如更高的值有更深的颜色,更低的值有更浅的颜色或类似的东西.
是否有任何包/功能可以做到这一点?
谢谢!
通过一些谷歌搜索,我在这个链接上找到了以下功能:
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)){
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))
}
colorlevels <- col[((as.vector(z)-breaks[1])/(range(breaks)[2]-range(breaks)[1]))*(length(breaks)-1)+1] # assign colors to heights for each point
colorlevels
}
Run Code Online (Sandbox Code Playgroud)
看来这正是你要找的.