在R中将数字矩阵转换为颜色矩阵

Cam*_*ron 9 r colors matrix

我有以下包含数字0-4的4x4数字矩阵:

0  1  0  3
3  2  1  4
4  1  0  2
3  3  0  1
Run Code Online (Sandbox Code Playgroud)

我想了解如何使用R将数字矩阵转换为使用所选颜色和特定方形尺寸(长度x宽度)的颜色矩阵.要清楚,我将颜色矩阵定义为使用彩色方块表示特定值的图形.矩阵方向.来自另一个程序的示例4x4如下:

在此输入图像描述

我必须为数字指定颜色代码,例如:

0 = FFFFFF
1 = 99FF66
2 = 66FF33
3 = 33CC00
4 = 009900
Run Code Online (Sandbox Code Playgroud)

但我不知道从哪里开始把这个放在一起.我想我也必须指定颜色方块的尺寸.

我的目标是能够将数据框导入到R中,最多包含10个数值,并为20x20的矩阵创建这些颜色图表.

Jot*_*ota 10

这就是我要做的事情:

d<-read.table(text="
0  1  0  3
3  2  1  4
4  1  0  2
3  3  0  1")

cols <- c(
'0' = "#FFFFFF",
'1' = "#99FF66",
'2' = "#66FF33",
'3' = "#33CC00",
'4' = "#009900"
)
# the names aren't necessary here.

image(1:nrow(d), 1:ncol(d), as.matrix(d), col=cols)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

如果您希望方向不同,可以旋转矩阵:

image(1:nrow(d), 1:ncol(d), t(apply(d, 2, rev)), col=cols)
Run Code Online (Sandbox Code Playgroud)

要删除所有文本和边框,您可以尝试:

image(1:nrow(d), 1:ncol(d), as.matrix(d), col=cols, 
  xaxt="n", yaxt="n", bty="n", xlab="", ylab="")
Run Code Online (Sandbox Code Playgroud)

  • @Cameron你可以尝试添加`asp = 1`作为`image`的参数之一:`image(1:nrow(d),1:ncol(d),t(apply(d,2,rev)), col = cols,xaxt ='n',yaxt ='n',ann = FALSE,bty ='n',asp = 1)`. (3认同)