I am in the process of creating a stacked percentage bar chart. I can make the bar chart, but when I add text labels (using geom_label) they were not in the correct spot.  Therefore I used position=position_stack(vjust=0.5) to fix it. However in doing so, the labels are not in the right spot and should be flipped. I also need to make it work when I flip the coordinates with coord_flip(). 
I have seen many examples and this is not a duplicate because I have tried it their way, but it did not work. Here is what I have used first, second, third. The third one uses a geom_col as well.
Code:
Type<-c('A','B','C','D','E','F')
Class<-c('Excellent','VG','G','Avg','B','VB','Poor')
example.df<-data.frame(expand.grid(Type,Class))
example.df<-example.df[order(example.df$Var1),]
example.df$per<-c(
  0.264866156,
  0.536245414,
  18.46247368,
  61.950457,
  18.57753848,
  0.206248236,
  0.002171034,
  0.078446754,
  0.349088056,
  19.51559129,
  61.38066288,
  18.50951167,
  0.166699353,
  0,
  0.760913096,
  0.52062475,
  14.45734882,
  66.51982379,
  17.66119343,
  0.080096115,
  0,
  1.110666035,
  1.55493245,
  7.882087324,
  70.66385055,
  18.70288773,
  0.074651324,
  0.010924584,
  1.505981129,
  2.423019706,
  6.576185527,
  74.43296448,
  15.01294043,
  0.048908724,
  0,
  1.779324382,
  2.695249664,
  9.435015265,
  71.38308,
  14.69091625,
  0.013131545,
  0.003282886
)
p<-ggplot()+
  geom_bar(data=example.df,aes(x=Var1,y=per,fill=Var2),stat="identity")+
  geom_label(data=example.df[example.df$per>3,],aes(x=Var1,y=per,label=paste0(round(per,1),'%')),
             position = position_stack(vjust=0.5)
  )
p
