# [R] Overlaying two graphs using ggplot2 in R

Duncan Mackay dulcalma at bigpond.com
Tue Jan 28 04:28:12 CET 2014

```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: mackay at northnet.com.au

-----Original Message-----
From: r-help-bounces at r-project.org [mailto:r-help-bounces at 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
KG

[[alternative HTML version deleted]]

______________________________________________
R-help at r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help