我有一个这样的数据集:
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中的热图,像这样:
有人有建议吗?谢谢!
laik7k3q1#
您可以使用gt包来为表格单元格着色:
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"))
jbose2ul2#
与您提供的示例不太一样,但是使用ggplot,我们可以使用facet_wrap()来显示按Taxa进行的分组:
ggplot
facet_wrap()
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")
2条答案
按热度按时间laik7k3q1#
您可以使用
gt
包来为表格单元格着色:jbose2ul2#
与您提供的示例不太一样,但是使用
ggplot
,我们可以使用facet_wrap()
来显示按Taxa进行的分组: