Skip to content
Back to formatted view

Raw Message

Message-ID: <512207AC.3000304@bitwrit.com.au>
Date: 2013-02-18T10:51:24Z
From: Jim Lemon
Subject: How to label percentage values inside stacked bar plot using R-base
In-Reply-To: <CAGhtPK0iAJhkRzt+tYY-ZHEnrm+FFgOjGY+u6MHV-25Thbd-Qg@mail.gmail.com>

On 02/18/2013 06:05 PM, nay-nancy Laiser wrote:
> Hello, I am new to R. I would like others to explain to me how to add
> absolute values inside the individual stacked bars in a consistent way
> using the basic R plotting function (R base). I tried to plot a stacked bar
> graph using R base but the values appear in an inconsistent/illogical way
> in such a way that its supposed to be 100% for each village but they don't
> sum up to 100%.
> Here is the data that am working on:
>
> Village      100        200         300    400        500
>
> Male    68.33333    53.33333    70    70       61.66667
>
> Female  31.66667   46.66667    30   30        38.33333
>
> In summary, there are five villages and the data showing the head of
> household interviewed by sex.
>
> I have used the following command towards plotting the graph:
> barplot(mydata,col=c("yellow","green")
> x<-barplot(mydata,col=c("yellow","green")
> text(x,mydata,labels=mydata,pos=3,offset=.5)
>
> Please help to allocate the correct values in each bar
> Thanks
> Nay
>
Hi Nay,
You can label the plot you have done above like this:

mydata<-matrix(c(100,200,300,400,500,
  68.33333,53.33333,70,70,61.66667,
  31.66667,46.66667,30,30,38.33333),ncol=3)
colnames(mydata)<-c("Village","Male","Female")
xpos<-barplot(mydata,col=c("yellow","green"))
library(plotrix)
barlabels(rep(xpos,each=5),
  apply(mydata,2,cumsum)-mydata/2,
  labels=mydata,prop=1,cex=0.7)

However, the plot is pretty redundant and you might want to consider 
other ways of presenting the data.

Jim