Añadiendo canal RGB a la matriz 2D [R]
Aquí hay una matriz de ejemplo:
mymat<-matrix(runif(24*24), ncol=24)
Puedo trazar esta matriz usando ggplot2, por lo que puedo obtener una representación en color de los valores:
plot_mat <- function(mat){
mat_df<- reshape2::melt(mat)
plt <- mat_df %>% ggplot2::ggplot(aes(Var2, Var1)) + geom_raster(aes(fill = value)) +scale_fill_gradientn(colours = c(‘blue’, ‘green’, ‘yellow’, ‘red’)) + theme_bw()
return(plt)
}
plot_mat(mymat)
Me gustaría agregar un canal RGB a mis datos sin convertirlos en una imagen. Me gustaría agregar otra dimensión a mi mymat, para que la salida dim (mymat) se vea 24, 24, 3. Desafortunadamente, no sé cómo hacerlo.
Agradecería su ayuda.
davy.ai
Para agregar un canal RGB a su matriz, puede crear una nueva matriz con las dimensiones deseadas (24, 24, 3) y asignar los valores de su matriz original a las dos primeras dimensiones y establecer la tercera dimensión usando un valor fijo o un gradiente. Aquí hay un ejemplo de código para lograr esto:
En el ejemplo anterior, asignamos los valores de
mymat
a las dos primeras dimensiones dergbmat
y creamos un gradiente de azul a rojo para la tercera dimensión. Luego trazamos la matriz resultante usando la funciónplot_rgbmat
que agrega un canal alfa para asegurarse de que los valores RGB sean visibles. Tenga en cuenta que utilizamos el argumentoguides(alpha = FALSE)
para eliminar la escala alfa de la trama.