I have two plots using data from two separate datasets (males vs females), which I have arranged side by side using ggarrange()
. Males are shown by filled circles, females by unfilled circles.
How can I add a legend so that the reader may understand which graph is from male data, and which graph is from female data?
Here is my code:
Pronotum_Width_Female <- c("6.5", "7.4", "7.0","6.2", "6.3", "6.3","6.0", "6.4", "6.9","6.6", "6.8", "7.2")
Year_Female <- c("1995", "1999", "2001","2003", "2005", "2007","2008", "2009", "2010","2011", "2012", "2013")
female <- data.frame(Pronotum_Width_Female, Year_Female)
Pronotum_Width_Male <- c("6.4", "5.9", "5.8","6.2", "6.5", "6.0","6.2", "5.7", "5.8","6.0", "6.1", "6.5")
Year_Male <- c("1995", "1999", "2001","2003", "2005", "2007","2008", "2009", "2010","2011", "2012", "2013")
male <- data.frame(Pronotum_Width_Male, Year_Male)
plot1 <- ggplot(female, aes(y=Pronotum_Width_Female,x=Year_Female)) +
geom_point(size = 2, shape = 1) +
labs(x="Year", y = "Pronotum Width (mm)") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black")) +
theme(axis.title = element_text(size=15), # for axix
title = element_text(size=15),axis.text = element_text(size=15),
axis.title.x = element_text(vjust = 0),
axis.title.y = element_text(vjust = 2),
legend.title = element_text(vjust = 0.5))+
coord_cartesian(ylim=c(5,12))
plot2 <- ggplot(male, aes(y=Pronotum_Width_Male,x=Year_Male)) +
geom_point(size = 2) +
geom_smooth(method = "lm", se = TRUE,col="black",size=1) +
labs(x="Year", y = "Pronotum Width (mm)") +
theme(panel.grid.major = element_blank(), panel.grid.minor = element_blank(),
panel.background = element_blank(), axis.line = element_line(colour = "black")) +
theme(axis.title = element_text(size=15), # for axix
title = element_text(size=15),axis.text = element_text(size=15),
axis.title.x = element_text(vjust = 0),
axis.title.y = element_text(vjust = 2),
legend.title = element_text(vjust = 0.5))+
coord_cartesian(ylim=c(5,12))
ggarrange(plot2, plot1,
labels = c("a)", "b)"),
ncol = 2, nrow = 1)