r - 更改分组条形图中因子的顺序
问题描述
我有以下代码:
figg4 <- lala4 %>% gather(key, value, -Species_Name) %>%
mutate (Species_Name = factor(Species_Name,
levels=c('Dasyprocta punctata',
'Cuniculus paca','Large Rats',
'Heteromys unknown', 'Sciurus variegatoides',
'Sciurus granatensis','Dasypus novemcinctus',
'Didelphis marsupialis', 'Philander opossum',
'Metachirus nudicaudatus', 'Nasua narica',
'Procyon lotor', 'Eira barbara',
'Galictis vittata', 'Leopardus pardalis'))) %>%
ggplot(aes(x=Species_Name, y=value,
fill=key)) + coord_flip() + geom_col (position = "stack") +
theme(panel.background = element_blank()) + bbc_style() +
labs(title = "Species occupancy by Site Type")+
scale_fill_manual(values = c("#333333","#1380A1", "#FAAB18"))
我得到以相反顺序列出名称的条形图,我想让它们按照我在其中写入级别的顺序出现......我该怎么做?
我尝试通过添加以下代码来使用来自 forcats 的 fct_reorder
mutate(name = fct_reorder(Species_Name, desc(value)))
但这并没有改变顺序。我对 r 很陌生,不知道该怎么做。将不胜感激任何帮助
这是源的 dput 输出:
dput(lala4)结构(列表(物种名称=结构(c(9L,12L,13L,14L,19L,22L,27L,46L,41L,42L,10L,15L,32L,33L,24L),.Label = c( “Buteo platypterus”、“Canis latrans”、“Cathartes aura”、“Catharus unknown”、“Catharus ustulatus”、“Cebus capucinus”、“Chordeiles unknown”、“Conepatus semistriatus”、“Crax rubra”、“Crypturellus cinnamomeus”、 “Cuniculus paca”、“Dasyprocta punctata”、“Dasypus novemcinctus”、“Didelphis marsupialis”、“Eira barbara”、“Galictis vittata”、“Geotrygon montana”、“Geotrygon violacea”、“Heteromys unknown”、“Holcosus quadrilineatus”、 “大老鼠”、“豹纹”、“Leopardus wiedii”、“Leptotila 未知”、“Melozone 未知”、“Metachirus nudicaudatus”、“Nasua narica”、“Odocoileus virginianus”、“Panthera onca”、“Parkesia noveboracensis”、“Pecari tajacu”、“Penelopina nigra”、“ Philander opossum”、“Piaya cayana”、“Procyon lotor”、“Puma concolor”、“Puma yagouaroundi”、“Sciurus granatensis”、“Sciurus variegatoides”、“Setophaga unknown”、“Sylvilagus sp”、“Tamandua mexicana”、“ Tapirus bairdii”、“Tayassu pecari”、“Tigrisoma fasciatum”、“Tinamus major”)、class = “factor”)、Metachirus nudicaudatus”、“Nasua narica”、“Odocoileus virginianus”、“Panthera onca”、“Parkesia noveboracensis”、“Pecari tajacu”、“Penelopina nigra”、“Philander opossum”、“Piaya cayana”、“Procyon lotor”、“ Puma concolor”、“Puma yagouaroundi”、“Sciurus granatensis”、“Sciurus variegatoides”、“Setophaga unknown”、“Sylvilagus sp”、“Tamandua mexicana”、“Tapirus bairdii”、“Tayassu pecari”、“Tigrisoma fasciatum”、“ Tinamus major"), class = "factor"),Metachirus nudicaudatus”、“Nasua narica”、“Odocoileus virginianus”、“Panthera onca”、“Parkesia noveboracensis”、“Pecari tajacu”、“Penelopina nigra”、“Philander opossum”、“Piaya cayana”、“Procyon lotor”、“ Puma concolor”、“Puma yagouaroundi”、“Sciurus granatensis”、“Sciurus variegatoides”、“Setophaga unknown”、“Sylvilagus sp”、“Tamandua mexicana”、“Tapirus bairdii”、“Tayassu pecari”、“Tigrisoma fasciatum”、“ Tinamus major"), class = "factor"),Pecari tajacu”、“Penelopina nigra”、“Philander opossum”、“Piaya cayana”、“Procyon lotor”、“Puma concolor”、“Puma yagouaroundi”、“Sciurus granatensis”、“Sciurus variegatoides”、“Setophaga unknown”、“ Sylvilagus sp”,“Tamandua mexicana”,“Tapirus bairdii”,“Tayassu pecari”,“Tigrisoma fasciatum”,“Tinamus major”),class =“factor”),Pecari tajacu”、“Penelopina nigra”、“Philander opossum”、“Piaya cayana”、“Procyon lotor”、“Puma concolor”、“Puma yagouaroundi”、“Sciurus granatensis”、“Sciurus variegatoides”、“Setophaga unknown”、“ Sylvilagus sp”,“Tamandua mexicana”,“Tapirus bairdii”,“Tayassu pecari”,“Tigrisoma fasciatum”,“Tinamus major”),class =“factor”),“Tapirus bairdii”、“Tayassu pecari”、“Tigrisoma fasciatum”、“Tinamus major”)、class = “factor”)、“Tapirus bairdii”、“Tayassu pecari”、“Tigrisoma fasciatum”、“Tinamus major”)、class = “factor”)、
Forest Area (<5ha)
= c(0.067307692, 0.134615385, 0.173076923, 0.144230769, 0.019230769, 0.086538462, 0.192307692, 0.009615385, 0.163461538, 0.038461538, 0, 0.019230769, 0, 0.163461538, 0.153846154),Forest Area (5-27ha)
= c(0.067307692, 0.317307692, 0.269230769, 0.096153846, 0.038461538, 0.105769231, 0.192307692 , 0.115384615, 0.134615385, 0.057692308, 0, 0.096153846, 0, 0.076923077, 0.173076923),Forest Area (>350ha)
= c(0.163461538, 0.384615385, 0.278846154, 0.201923077, 0.105769231, 0.067307692, 0.144230769, 0.298076923, 0.028846154, 0.048076923, 0.086538462, 0.038461538, 0.019230769, 0.028846154, 0.125 )), row.names = c(NA, 15L), class = "data.frame")
解决方案
您需要首先将因子重新定义为有序因子。
尝试通过添加来修复定义因子的代码
ordered = TRUE
这应该可以工作:
figg4 <- lala4 %>% gather(key, value, -Species_Name) %>%
mutate (Species_Name = factor(Species_Name,
levels=c('Dasyprocta punctata',
'Cuniculus paca','Large Rats',
'Heteromys unknown', 'Sciurus variegatoides',
'Sciurus granatensis','Dasypus novemcinctus',
'Didelphis marsupialis', 'Philander opossum',
'Metachirus nudicaudatus', 'Nasua narica',
'Procyon lotor', 'Eira barbara',
'Galictis vittata', 'Leopardus pardalis'), ordered = TRUE)) %>%
ggplot(aes(x=Species_Name, y=value,
fill=key)) + coord_flip() + geom_col (position = "stack") +
theme(panel.background = element_blank()) + bbc_style() +
labs(title = "Species occupancy by Site Type")+
scale_fill_manual(values = c("#333333","#1380A1", "#FAAB18"))
我无法运行它,因为我没有lala4
要测试的数据。
推荐阅读
- amazon-web-services - aws iam 具有冲突条件的多个策略
- unreal-engine4 - UnrealEngine4浮点到Int64而不四舍五入到32位?
- android - NavigationView onNavigationItemSelected 不起作用
- bash - 命令中间有空格的文件名(不是 while/for 循环)
- php - 如何在 Visual Studio Code 中初始化 PHP 构造函数字段
- swift - 即使内容被推离屏幕,UIScrollView 也不滚动
- node.js - 获取请求期间未找到 Feathers 服务
- ionic-framework - Ionic App 中的 Typeform 导致 zone.js 失败
- sql - 查询完成后从 HIVE 发送电子邮件?
- indexing - AMPL:定义对集合的特定索引的约束