嗨,这是我的假数据:
year<-c(rep(2010,3),rep(2011,3),rep(2012,3))
value<-rnorm(9,10,5)
nation<-rep(c("a","b","c"),3)
fake<-data.frame(year,value,nation)
这是我已有的代码:
ggplot(data=fake, aes(x=year, y=value, fill=nation)) +
geom_bar(stat="identity",width=0.5, position=position_dodge())+
scale_fill_manual(values=c("#006600", "#007f00","#009900"),name="Experimental\nCondition")+
scale_x_continuous(breaks=seq(2010,2015,1),name="year")+
scale_y_continuous(breaks=F,name="value")+
theme(legend.title=element_blank(),plot.title = element_text(lineheight=0.9, face="bold"))+
ggtitle("arbitrary nation values in arbitrary years")+
coord_flip()
我想要做的是在每个条形图中添加值,在背景中删除网格,并从最高值到最低值重新排序每一年,因此条形图的顺序在不同年份会有所不同。也许最后一件事是左下角的小零点。在图的第一个版本中,X轴上有数字,但是我想要删除它们,所以我做了但零持续。它可以在一些图形编辑器中擦除它,但我想它可以通过代码完成。
非常感谢你的每一个建议
答案 0 :(得分:0)
我几乎得到了你想要的东西,我会发给你这个代码。您可以使用命令reorder()
执行某些操作,以按年份对条形图重新排序。
ggplot(data=fake, aes(x=year, y=value, fill=nation)) +
geom_bar(stat="identity",width=0.5, position=position_dodge())+
scale_fill_manual(values=c("#006600", "#007f00","#009900"),name="Experimental\nCondition")+
scale_x_continuous(breaks=seq(2010,2015,1),name="year")+
scale_y_continuous(breaks=F,name="value")+
theme(legend.title=element_blank(),plot.title = element_text(lineheight=0.9, face="bold"))+
geom_text(aes(label = round(value, digits=2)), size = 5, position = position_dodge(width = 0.5), hjust=1)+
ggtitle("arbitrary nation values in arbitrary years")+
coord_flip()+
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black"))