Hi all,

I want to arrange two ggplot2 plots on the same page with their x-axes
lined up - even though one is a boxplot and the other is a line plot.  Is
there a simple way to do this?  I know I could do this using facetting if
they were both the same type of plot (for example, if they were both
boxplots), but I haven't been able to figure it out for two different types
of plots.

Below is my test case:

library(ggplot2)
library(gridExtra)

#generate test precipitation data
year<-c(2000,2001,2002,2003,2004)
precip<-c(46,100,80,74,20)
yp<-data.frame(year, precip)

#generate test fecal coliform data
year2<-c(2000,2000,2000,2000,2000,2000,2000,2000,2000,2000,
2001,2001,2001,2001,2001,2001,2001,2001,2001,2001,
2002,2002,2002,2002,2002,2002,2002,2002,2002,2002,
2003,2003,2003,2003,2003,2003,2003,2003,2003,2003,
2004,2004,2004,2004,2004,2004,2004,2004,2004,2004)
fc<-sample(1:1000, 50)
yfc<-data.frame(year2, fc)

#make test precipitation plot
yp_plot<-ggplot(yp) + geom_point() + geom_line() + aes(year, y=precip) +
opts(title="Site X \n ", axis.text.x=theme_text(angle=45, hjust=1,
vjust=1)) +
ylab("Annual Precipitation (in.) \n ") + xlab("")

#make test fecal coliform plot
yfc_plot<-ggplot(yfc) + geom_boxplot() + aes(x=as.factor(year2), y=fc) +
opts(axis.text.x=theme_text(angle=45, hjust=1, vjust=1)) +
xlab(" \n Date") + ylab("Fecal coliforms (cfu/100 mL) \n ") +
geom_smooth(stat='smooth', aes(group=1), size=1.5) + scale_y_log10()

#arrange plots together
grid.arrange(yp_plot, yfc_plot, ncol=1)


You can see that I got the plot areas to line up using grid.arrange(), but
the x-axes are still off.  I'd really appreciate any help I can get.

Thanks,
Saalem

        [[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.

Reply via email to