Пожалуйста, смотрите ниже подход с использованием пакета tidyverse
. dat
преобразуется в dat2
из широкого формата в узкий. Затем geom_tile
строится:
library(tidyverse)
# simulation
dat <- matrix(runif(81, -2, 2), ncol = 9)
## reshape data (tidy/tall form)
dat2 <- dat %>%
tbl_df() %>%
rownames_to_column("Var1") %>%
gather(Var2, value, -Var1) %>%
mutate(
Var1 = factor(Var1, levels=1:10),
Var2 = factor(gsub("V", "", Var2), levels=1:10))
## plot data
ggplot(dat2, aes(Var1, Var2)) +
geom_tile(aes(fill = value)) +
geom_text(aes(label = round(value, 1))) +
scale_fill_gradient(low = "green", high = "red")
Выход: