Преобразование матрицы чисел в матрицу цветов в R
у меня есть следующая матрица чисел 4x4, содержащая числа 0-4:
0 1 0 3
3 2 1 4
4 1 0 2
3 3 0 1
Я хотел бы понять, как преобразовать числовые матрицы в цветовые матрицы, используя выбранные цвета и конкретные квадратные размеры (длина x Ширина), используя R. Чтобы быть ясным, я определяю цветовую матрицу как фигуру, используя цветные квадраты для представления определенных значений в ориентации матрицы. Пример 4x4 из другой программы:
Я бы присвоение цветовых кодов номерам, например:
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)
Если вы предпочитаете, чтобы ориентация была другой, вы можете поворот матрицы:
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="")