H_A
H_A

Reputation: 677

Aligning text on bar chart ggplot2

df.test <- data.frame(val=c(0.55,0.42,-0.05),name=letters[1:3],
desc='This is     the description of values'

p <- ggplot(df.test, aes(name, val, label = desc)) +
    geom_bar(stat = "identity", col = 'black', fill = 'lightgreen') + 
    labs(title = "Test", x = " ", y = "value", fill = "") + 
    theme_bw() + 
    guides(fill = FALSE)

p + geom_text(angle = 90, size = 8, hjust = 1.25, position = position_dodge(width = 0.9))

This generates the following plot:

enter image description here

I want to align the text and force the it to start at the beginning of each chart, so that all of them can be visible (it is ok if it falls outside the small chart). How can I achieve this?

Upvotes: 0

Views: 1315

Answers (1)

Haboryme
Haboryme

Reputation: 4761

Is this what you're looking for?

   p <- ggplot(df.test,aes(name,val,label=desc))+
      geom_bar(stat="identity",col='black',fill='lightgreen')+ 
      labs(title = "Test", x = " ", y = "value",fill = "")+
      theme_bw()+
      guides(fill=FALSE)
    p+geom_text(angle=90,size=8,hjust=0,aes(x=name,y=rep(0,nrow(df.test)),label=desc),inherit.aes=F)

enter image description here

Upvotes: 2

Related Questions