2016-04-22 8 views
1

これは繰り返し質問ですが本当に残念です。しかし、何らかの理由で以前に与えられた回答は私のためには役に立たなかった。 は、私は、次のDFを持っている:バーグラフの位置にggplotラベル

Country<-c("Chile", "Chile", "Finland","Finland") 
Taxa<-c("Mammalia","Amphibia","Mammalia","Amphibia") 
Loss<-c(0.15, 1, 0.2, 0.75) 
df<-data.frame(Country, Taxa, Loss) 

私は、ランキングとして表示してlablesを追加したいです。これは私が持っているものです:

ggplot(df,aes(x=reorder(Country, Loss), y=Loss)) + 
    geom_bar(aes(fill = Taxa), position="dodge", stat="identity") + 
    labs(x = "", y = "")+ 
    ylim(0,1)+ 
    theme (legend.position="top", legend.title = element_blank(),legend.text = element_text(size = 17), 
     axis.text.x = element_text(size=17), 
     axis.text.y = element_text(size=17), axis.title.y=element_text(size=17))+ 
    geom_text(aes(label = Loss), position=position_dodge(width=1))+ 
    coord_flip() 

それはうまく動作します!ただ私が望むように、私はその寓話を置くことができません。 Idは、バーの隣にラベルがあることを好みます。 widthで遊んでみたところ、vjusthjustでもポジションは変わっていません...どうしましたか?

ありがとうございます!

答えて

2

別の解決策。

How to use vjust and hjust

私はgeom_text(aes())group = Taxaを使用し、あなたがバーごとにラベルをしたいと仮定します。

enter image description here

ggplot(df,aes(x=reorder(Country, Loss), y=Loss)) + 
geom_bar(aes(fill = Taxa), position="dodge", stat="identity") + 
labs(x = "", y = "")+ ylim(0,1)+ theme (legend.position="top", 
legend.title = element_blank(),legend.text = element_text(size = 17), 
axis.text.x = element_text(size=17), axis.text.y = element_text(size=17), 
axis.title.y=element_text(size=17))+ 
geom_text(aes(x = reorder(Country, Loss), label = Loss, group = Taxa), 
position=position_dodge(width=1), hjust = -1) 
+ coord_flip() 
+0

ありがとうございました!このサンプルdfでうまくいきます。今私はそれを実際の取引で動作させる必要があります... – samyandi

+0

完了。迅速で有益な答えをありがとうございます。 – samyandi

2

?geom_textから取られたアイデア:あなたはmentionnedとして、vjusthjustを使用して

ggplot(df, aes(x=reorder(Country, Loss), y=Loss, label = Loss, fill = Taxa)) + 
    geom_bar(position="dodge", stat="identity") + 
    geom_text(aes(y = Loss + 0.02), position = position_dodge(0.9), vjust = 0) + 
    coord_flip() 

enter image description here

関連する問題