1
저는 -1과 0 사이의 값을 갖는 행렬을 가지고 있습니다. 그리고 이것을 빨강 -> 흰색 -> 파랑의 색으로 매핑하고 싶습니다. 즉, 빨강 -1, 0은 흰색, 파랑은 1입니다.R - 십진수의 행렬을 색상으로 매핑하십시오.
다음은이 색상의 rgb 값을 3 개의 분리 된 행렬로 잡고 싶습니다.
저는 -1과 0 사이의 값을 갖는 행렬을 가지고 있습니다. 그리고 이것을 빨강 -> 흰색 -> 파랑의 색으로 매핑하고 싶습니다. 즉, 빨강 -1, 0은 흰색, 파랑은 1입니다.R - 십진수의 행렬을 색상으로 매핑하십시오.
다음은이 색상의 rgb 값을 3 개의 분리 된 행렬로 잡고 싶습니다.
-1 to +1
을 0 to 1
으로 확장 한 다음 colorRamp
을 사용할 수 있습니다. 전체 함수 매트릭스 m
을 취하고 r/g/b
값의 배열이 반환 될 것이다 :
m <- matrix(seq(-1,1,length.out=9),nrow=3)
# [,1] [,2] [,3]
#[1,] -1.00 -0.25 0.50
#[2,] -0.75 0.00 0.75
#[3,] -0.50 0.25 1.00
colsel <- function(m,cols) {
x <- as.vector(m)
xscal <- scale(x,center=min(x),scale=diff(range(x)))
out <- colorRamp(cols)(xscal)
dim(out) <- c(dim(m),3)
dimnames(out) <- list(NULL,NULL,cols)
out
}
그 결과
colsel(m, c("red","white","blue"))
#, , red
#
# [,1] [,2] [,3]
#[1,] 255 255.00 127.50
#[2,] 255 255.00 63.75
#[3,] 255 191.25 0.00
#
#, , white
#
# [,1] [,2] [,3]
#[1,] 0.00 191.25 127.50
#[2,] 63.75 255.00 63.75
#[3,] 127.50 191.25 0.00
#
#, , blue
#
# [,1] [,2] [,3]
#[1,] 0.00 191.25 255
#[2,] 63.75 255.00 255
#[3,] 127.50 255.00 255
감사합니다 그러나 나의 가치관은 매트릭스에있다. 이 함수는 벡터를 취합니다. – CodeGuy
@ CodeGuy - 원하는 것을 제공하기 위해 조금 더 정리했습니다. – thelatemail
감사합니다. – CodeGuy