R 分组条形图中系数的更改顺序
我有以下代码:R 分组条形图中系数的更改顺序,r,ggplot2,bar-chart,reverse,R,Ggplot2,Bar Chart,Reverse,我有以下代码: 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 granate
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"))
但这并没有改变顺序。
我对r很陌生,不知道怎么做。如有任何帮助,我将不胜感激
以下是源的dput输出:
dputla4
structurelistSpecies_Name=structurec9L、12L、13L、14L、,
19L、22L、27L、46L、41L、42L、10L、15L、32L、33L、24L,标签=cButeo platypterus,
拉特兰犬、灵气犬、未知犬、乌斯图拉犬、,
卷尾猴,索氏体未知,半纹状体锥虫,
红角、肉桂隐孢子虫、帕卡锥虫、点状锥虫、,
新墨西哥州达西波斯,有袋动物迪德尔菲斯,埃拉·芭芭拉,
蒙大拿州地龙、紫地龙、,
未知的异口鱼,四线黑鲷,大鼠,
豹纹豹,豹纹豹,未知细纹豹,
Melozone未知,野牛掌尾蛇,成龙鼻,
维吉尼亚奥多科里厄斯、黑豹、新巴科利西亚、,
Pecari tajacu,Penelopina nigra,飞龙负鼠,Piaya cayana,
普罗西恩·洛托、美洲狮、美洲狮、格拉纳坦西斯,
杂色Sciurus variegatoides,Setophaga未知,Sylvilagus sp,
墨西哥塔曼杜亚病毒、贝尔迪病毒、佩卡里病毒、筋膜虎纹伊蚊、,
蒂那穆斯大草原,等级=因子,森林面积350ha=c0.16346538,
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=cNA,
15L,类=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数据。如何:ggplotaesx=forcats::fct\u revSpecies\u Name。。。?提出一个人们可以帮助解决的问题。这包括一个数据样本和一些输出也许,这个答案给出了一些提示。谢谢你,艾莉森,我试过了,但它不管用。相反,我手动创建了一个反向顺序,并添加了该反向顺序,该顺序按照我希望的顺序生成了图形,但为了防止您感兴趣,我添加了数据帧的dput输出。有趣的是,我不确定dput。如果在调用ggplot之前将物种名称定义为lala4数据中的一个有序因子,可能会起作用。不管怎样,你找到了解决问题的办法。也许其他人知道原因。如果你提供一个可复制的例子,人们会更容易提供帮助,然后人们可以自己测试它,并为你提供一个清晰的解决方案。看看上面@camille写的便条。艾莉森:!谢谢你的回复。
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"))