[R] Labeling Stacked Bar Plots Representing Percentages with Count Data

Jim Lemon drj|m|emon @end|ng |rom gm@||@com
Sat Nov 16 23:16:00 CET 2019

Hi Josh,
I couldn't work out how to do this in ggplot, but here is a possible solution:

 Arenaria interpres,Bucktoe Preserve,96
 Arenaria interpres,CHDE,132
 Arenaria interpres,Fortescue,22133
 Arenaria interpres,Mispillion,2031
 Arenaria interpres,Norbury,3709
 Arenaria interpres,Penn - DRL,49
 Calidris alba,Bucktoe Preserve,56
 Calidris alba,CHDE,145
 Calidris alba,Fortescue,19000
 Calidris alba,Mispillion,2200
 Calidris alba,Norbury,3900
 Calidris alba,Penn - DRL,40
 Calidris canutus,Bucktoe Preserve,77
 Calidris canutus,CHDE,100
 Calidris canutus,Fortescue,15000
 Calidris canutus,Mispillion,1831
 Calidris canutus,Norbury,3100
 Calidris canutus,Penn - DRL,60")
# get stacked heights

Your big problem is that three observation sites have tiny values
compared to the rest. As always there is a kludge available. Replace
the call to barlabels with the following:


This gives you a legible plot, although you will probably have to play
with the "rep" numbers to get it to work for your entire data set.


On Sat, Nov 16, 2019 at 10:57 AM Josh B <jbarth1235 using gmail.com> wrote:
> Hello,
> I am trying to include the count labels on stacked bar plots which
> represent percentages. I want to show x-amount of individuals make up the
> graphed percentages. However, when I include the count labels my y-axis
> gets blown out of proportion because it changes to match the count data,
> not the percentages. Also, the bars are removed from the graph too? I have
> reviewed other posts similar to this, such as: "How to add percentage or
> count labels above percentage bar plot?". I cannot find the error in my r
> command.
> My command used is as follows:
> sumplot<-ggplot(tagSummary,aes(x=recvDeployName,y=nDet,fill=speciesSci))+
>   geom_bar(position="fill",stat="identity")+
>   geom_text(aes(label=nDet),position=position_stack(vjust=0.5))+
>   theme(axis.text.x=element_text(angle=90,hjust=1))+
>   scale_y_continous(labels=scales::percent_format())
> Example of data being graphed:
> speciesSci         recvDeployName    nDet
> 1 Arenaria interpres Bucktoe Preserve    96
> 2 Arenaria interpres CHDE               132
> 3 Arenaria interpres Fortescue        22133
> 4 Arenaria interpres Mispillion        2031
> 5 Arenaria interpres Norbury           3709
> 6 Arenaria interpres Penn - DRL          49
> What my graph looks like when I use the command example provided above:
> graph <https://i.stack.imgur.com/TLLGh.png>
> Any help would be greatly appreciated. Thank you.
> *Joshua N. Barth*
>         [[alternative HTML version deleted]]
> ______________________________________________
> R-help using r-project.org mailing list -- To UNSUBSCRIBE and more, see
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
> and provide commented, minimal, self-contained, reproducible code.

More information about the R-help mailing list