R语言 使用三个因子创建热图

ih99xse1  于 2023-06-19  发布在  其他
关注(0)|答案(2)|浏览(156)

我有一个这样的数据集:

df <- data.frame(Taxa=rep(c("Ants","Birds"),each=4),
                 Predictor=rep(c("Area","Temp"),times=4),
                 Method=rep(c(1,1,2,2),times=2),
                 Importance=c(1,2,2,1,1,2,2,1))

我想要一个R中的热图,像这样:

有人有建议吗?谢谢!

laik7k3q

laik7k3q1#

您可以使用gt包来为表格单元格着色:

library(dplyr)
library(tidyr)
library(gt)

df %>% 
  pivot_wider(names_from = "Predictor", values_from = "Importance") %>% 
  group_by(Taxa) %>% 
  gt() %>% 
  tab_options(row_group.as_column = TRUE) %>% 
  data_color(columns = c("Area", "Temp"), colors = c("red", "blue"))

jbose2ul

jbose2ul2#

与您提供的示例不太一样,但是使用ggplot,我们可以使用facet_wrap()来显示按Taxa进行的分组:

library(ggplot2)

df <- data.frame(
  Taxa = rep(c("Ants", "Birds"), each = 4),
  Predictor = rep(c("Area", "Temp"), times = 4),
  Method = rep(c(1, 1, 2, 2), times = 2),
  Importance = c(1, 2, 2, 1, 1, 2, 2, 1)
)

ggplot(data = df, aes(
  x = as.character(Method),
  y = Predictor,
  fill = Importance
)) + geom_tile() +
  facet_wrap( ~ Taxa) + xlab("Method")

相关问题