Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

geom_text with dodged barplot

I try to add text as in Position geom_text on dodged barplot But its not work with my simple data

data=data.frame(s=c(10,13,17,8),
                pr=c("a","b","a","b"),
                m=c(rep(as.Date('01.01.2015','%d.%m.%Y'),2), rep(as.Date('01.02.2015','%d.%m.%Y'),2)))

And ggplot

ggplot(data = data 
       ,aes(x = m, y = s,fill=pr ,ymax = max(s)*1.1))+
  geom_bar(position = "dodge",stat="identity")+
  geom_text(aes(y=s/2,label=paste(round(s,3),"%")),position = position_dodge(width=1))+
  scale_x_date(labels = date_format("%m/%y"),breaks = date_breaks("months"))

i get

enter image description here

How to add text in right position( in the middle of each bar)? Thanks!

like image 730
Batanichek Avatar asked Oct 12 '15 11:10

Batanichek


1 Answers

You could try

ggplot(data = data, aes(x = as.factor(m), y = s,fill=pr ,ymax = max(s)*1.1)) + 
  geom_bar(position = "dodge", stat="identity") + 
  geom_text(aes(y=s/2,label=paste(round(s,3),"%")),position = position_dodge(.9)) + 
  scale_x_discrete(labels = function(x) format(as.Date(x), "%m/%y")) + 
  xlab("m")
like image 198
lukeA Avatar answered Sep 29 '22 12:09

lukeA