Hi Kristi Jim has given you 1 non ggplot2 solution here is one from lattice panel.average is a line so added a line for points
# convert site to a factor dat1$Site = factor(dat1$Site) datav <- aggregate(Present ~ Site, dat1,mean) datav diff(datav[,2]) # test bw1 <- bwplot(Present~Site,data=subset(dat1, layer == "top"), ylim = c(0,200), panel = function(x,y,...){ panel.bwplot(x,y,...) panel.average(x=x,y=y,...) }) bw2<- bwplot(Present~Site,data=subset(dat1, layer == "bottom"), ylim = c(0,200), panel = function(x,y,...){ panel.bwplot(x,y,...) # overall mean if needed panel.average(dat1[,"Site"], dat1[,"Present"], ...) }) print(bw1, more = T) print(bw2, more = F) Duncan Duncan Mackay Department of Agronomy and Soil Science University of New England Armidale NSW 2351 Email: home: mac...@northnet.com.au -----Original Message----- From: r-help-boun...@r-project.org [mailto:r-help-boun...@r-project.org] On Behalf Of Kristi Glover Sent: Monday, 27 January 2014 21:13 To: R-help Subject: [R] Overlaying two graphs using ggplot2 in R Hi R Users, I was struggling to overlay two graphs created from the two different dataset using ggplot2. Furthermore, I could not join means of the box plots. I tried this way but did not work. Any suggestions? dat1<-structure(list(site = c(1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L), layer = structure(c(2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 2L, 2L, 2L, 1L, 1L, 1L, 1L), .Label = c("bottom", "top"), class = "factor"), Present = c(120L, 125L, 123L, 23L, 21L, 19L, 131L, 124L, 127L, 24L, 27L, 25L, 145L, 143L, 184L, 29L, 14L, 17L, 38L)), .Names = c("site", "layer", "Present"), row.names = c(NA, 19L), class = "data.frame") dat1 dat2<-structure(list(site = 1:3, present = c(-3L, 2L, 5L)), .Names = c("site", "present"), row.names = c(NA, 3L), class = "data.frame") dat2 library("plyr") library(ggplot2) A<-ggplot(dat1, aes(x = factor(site), y = Present, colour = layer, fill=layer)) + geom_boxplot(outlier.shape = 16, outlier.size = 1) + theme_bw()+ ylim(0,185) # Here I wanted to join the means of the boxplots among the sites, but I could not join it. B<-ggplot(dat2, aes(x=factor(site),y= present, colour="blue") + geom_line() + geom_point()) # wanted to plot it using second y axis. A+B Thanks for your help. KG [[alternative HTML version deleted]] ______________________________________________ R-help@r-project.org mailing list 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. ______________________________________________ R-help@r-project.org mailing list 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.