如何量化热图?

时间:2018-09-05 18:48:53

标签: r heatmap

我有一个热图,它的梯度从绿色到红色,值的范围是-2到2。

现在我想给热图的每个块赋一个值,有什么办法可以实现?

1 个答案:

答案 0 :(得分:0)

请参见下面使用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") 

输出: graph