【发布时间】:2021-06-05 15:39:20
【问题描述】:
我有一个包含数千行的 data.frame,看起来像这样
rep = c("rep1", "rep1", "rep1","rep2", "rep2", "rep2","rep3", "rep3", "rep3")
species = c("a","b","d","b","e","f","b","f","h")
value=c(sample.int(100, 9))
df <- data.frame(rep,species,value)
df2 <- df %>%
mutate(species=factor(species)) %>%
arrange(species,rep)
ggplot(df2,aes(rep, species, fill=value))+
geom_tile()
我想改变 y 轴的顺序,使所有重复中存在的物种首先出现,然后出现在两个重复中的物种在最后,最后出现在一个重复中的物种。
例如,我想先有物种 b,然后是 f,然后是其余的。 我的因素太多了,不可能一一改变。
如果有任何建议或指导,我将不胜感激。 提前谢谢你
更新解决方案: 我通过使用 fct_infreq() https://cran.r-project.org/web/packages/forcats/vignettes/forcats.html 找到了另一个解决方案。请检查一下
ggplot(df2,aes(rep, fct_infreq(species), fill=value))+
geom_tile()
【问题讨论】: