首页 > 解决方案 > 有没有办法用两个 geom_bars 在同一个图上重新排列条形图的 x 轴顺序?

问题描述

我正在尝试将 x 轴的顺序从 R 默认重新排列为自定义顺序。我曾尝试使用以下脚本,但这会产生错误 Error: Mapping should be created with aes()or aes_()。关于如何让它工作的任何线索,它在以前的图表中只有一个 geom_bar 起作用。

Growth4 %>%
  arrange(Label) %>%
  mutate(Label = factor(Label, levels=c( "Control", "B1 <2mm 5%", "B1 <2mm 10%", 
            "B1 <2mm 20%", "B1 >2mm 5%", "B1 >2mm 10%", 
            "B1 >2mm 20%", "B2 <2mm 5%", "B2 <2mm 10%","B2 <2mm 20%", "B2 >2mm 5%", "B2 >2mm 10%", "B2 >2mm 20%", "B3 <2mm 5%", "B3 <2mm 10%", "B3 <2mm 20%", "B3 >2mm 5%", "B3 >2mm 10% ", "B3 >2mm 20%"))) %>%
ggplot(Growth4, aes(x=Label))+
geom_bar(aes(x=Label, y=Shoot.dry.weight ), color="black", fill = "grey42", stat="identity")+
geom_errorbar(aes(ymin=Shoot.dry.weight-s.e.shoot, ymax=Shoot.dry.weight+s.e.shoot), width=.2, position=position_dodge(.9)) +
geom_bar(aes(x=Label, y=-Root.Dry.weight),color="black", fill = "grey60", stat="identity")+
geom_errorbar(aes(ymin=-Root.Dry.weight-s.e.root, ymax=-Root.Dry.weight+s.e.root), width=.2, position=position_dodge(.9)) +
theme(axis.text.x=element_text(angle=90, size=12, color="black"),panel.grid.major = element_blank(), panel.grid.minor = element_blank(),panel.background = element_blank(),axis.line = element_line(colour = "black"),axis.text.y=element_text( size=14, color="black"),axis.title=element_text(size=14, face="bold"))+
ylab("Root dry weight(g)                Shoot dry weight(g)")+
xlab("Treatment")+
ylim(-3,6)

标签: rggplot2bar-chartdplyr

解决方案


推荐阅读