2016-04-11 4 views
0

で水平グループ化された棒グラフで棒に削除グリッドを並べ替え、値にバーを追加します。こんにちは、これは私の偽のデータであるggplot 2

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

いただき、誠にありがとうございます、私はあなたにこのコードをお送りします。コマンド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")) 

enter image description here

関連する問題