Во-первых, индекс матрицы и прямоугольная координата различны.Я делаю матрицу, например:
> x <- matrix(c(1, rep(0, 8)), 3, 3)
[,1] [,2] [,3]
[1,] 1 0 0
[2,] 0 0 0
[3,] 0 0 0
Вы можете видеть, что индекс [1, 1]
равен 1
.Он расположен в левом верхнем углу матрицы.Но когда я строю эту матрицу с помощью image()
, значение 1
находится в левой кнопке:
Это потому, что система индексирования матрицы[1, 1]
и прямоугольная система координат (1, 1)
не совпадают.
Чтобы выполнить преобразование из индекса матрицы в прямоугольную координату, вы можете попробовать:
y <- t(x)[ , ncol(x):1]
image(y)
Вам удалось представить матрицу на тепловой карте с той же позицией.
Итак, с вашими данными вы можете сначала преобразовать ее в прямоугольную координату и построить графикэто:
mm2 <- t(mm)[ , ncol(mm):1]
mm2 %>%
melt() %>%
ggplot(aes(Var1, Var2)) + # Don't exchange Var1 and Var2 here
geom_tile(aes(fill = value,
color = value)) +
coord_equal() +
scale_fill_manual(values = c("TRUE" = "black", "FALSE" = "white")) +
scale_color_manual(values = c("TRUE" = "white", "FALSE" = "black")) +
theme_bw()