[R] APA two-way bar-chart

Dr. Thomas W. MacFarland tommac at nova.edu
Sat Jan 4 16:24:56 CET 2014

Hi Benjamin:

If the problem is legend location, then look at the legend help page and note the beginning statement:

     legend {graphics} R Documentation 

     This function can be used to add legends to plots. Note that a call to the function locator(1) can be used in place of the x and y arguments. 

Sample code, not for a barplot but still relevant, follows.

And yes, for your specific problem the barplot() function may be all that you need, and then fine tune legend composition and placement.

Best wishes.


savelwd      <- par(lwd=4)         # Heavy line       
  xlab=list("M1", cex=1.15, font=2),                  
  ylab=list("Density", cex=1.15, font=2),             
  xlim=c(0,120), ylim=c(0,0.05))    # Adjust as needed
  title(main="Density Plot of M1 by Gender")          
colorfill <- c(2:(2+length(levels(                    
legend(locator(1), levels(                            
  # Remember to click on an open location to paste the
  # legend into the figure.                           
  # Note how the line width is accommodated and then  
  # set back to the original value.

Date: Sat, 04 Jan 2014 20:44:35 +1100
From: Jim Lemon <jim at bitwrit.com.au>
To: "Benjamin Telkamp [via R]"
	<ml-node+s789695n4683046h42 at n4.nabble.com>
Cc: r-help-2 <r-help at r-project.org>
Subject: Re: [R] APA two-way bar-chart
Message-ID: <52C7D803.5040902 at bitwrit.com.au>
Content-Type: text/plain; charset=ISO-8859-1; format=flowed

On 01/04/2014 03:08 AM, Benjamin Telkamp [via R] wrote:
> Dear R-users,
> I'm struggling with APA formatted two way BAR-charts according to apa-style
> i should have the legend in the background of my plot (so above the bars and
> not beside the picture/plot itself) and the background should be completely
> white without gridlines or what so ever. Could any one give me a hint or
> solution? See Below for my commands
> thank you so much,
> Benjamin Telkamp (Email: inzichtelijk at gmail.com, The Netherlands)
> these are the commands used so far which just didn't give me what i wanted
> library(ggplot2)
> library(foreign)
> install.packages("Hmisc")
> DATA1<- read.spss(file=DATA1, use.value.labels=TRUE, to.data.frame=TRUE)
> Bar_PD<- ggplot(DATA1, aes(Age_group, IRI_PD ))
> Bar_PD + stat_summary(fun.y = mean, geom = "bar", fill = "Purple") +
> stat_summary(fun.data = mean_cl_normal, geom = "errorbar", width = 0.2) +
> labs (x = "Leeftijdsgroep", y = "IRI PD") + theme(plot.background =
> element_rect(colour= "White"))
Hi Benjamin,
I'm not sure what you mean by a two way bar chart. If it is a grouped 
barplot in which the members of each group are defined by the levels of 
one discrete variable and the groups are defined by another discrete 
variable, the basic "barplot" function with an added legend should do 
what you want. Can you give an example such as an image on the internet 
that shows what you want?

Thomas W. MacFarland, Ed.D.
Senior Research Associate; Institutional Effectiveness and Associate Professor
Nova Southeastern University
Voice 954-262-5395 tommac at nova.edu

More information about the R-help mailing list