Преобразование матрицы чисел в матрицу цветов в R

у меня есть следующая матрица чисел 4x4, содержащая числа 0-4:

0  1  0  3
3  2  1  4
4  1  0  2
3  3  0  1

Я хотел бы понять, как преобразовать числовые матрицы в цветовые матрицы, используя выбранные цвета и конкретные квадратные размеры (длина x Ширина), используя R. Чтобы быть ясным, я определяю цветовую матрицу как фигуру, используя цветные квадраты для представления определенных значений в ориентации матрицы. Пример 4x4 из другой программы:

enter image description here

Я бы присвоение цветовых кодов номерам, например:

0 = FFFFFF
1 = 99FF66
2 = 66FF33
3 = 33CC00
4 = 009900

но я не знаю, с чего начать собирать это вместе. Я предполагаю, что мне также придется указать размеры для цветных квадратов.

моя цель-иметь возможность импортировать фрейм данных в R с числовыми значениями до 10 и создавать эти цветные диаграммы для матриц размером 20x20.

1 ответов


вот что я бы сделал:

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)

enter image description here

Если вы предпочитаете, чтобы ориентация была другой, вы можете поворот матрицы:

image(1:nrow(d), 1:ncol(d), t(apply(d, 2, rev)), col=cols)

чтобы избавиться от всего текста и границ, вы могли бы попробовать:

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